python中遇到 *keys, **keys的形式

其实
* 代表传递任意个无名字参数,这些参数通过Tuple访问
>>> def sum(*keys):
ret= 0
for i in keys:
ret += i
return ret
>>> sum(1,2,3,4,5)
15 ** 代表传递人一个有名字参数,这些参数通过dict访问
>>> def sum(**keys):
ret= 0
for i,j in keys.items():
ret += j
return ret
>>> sum(a=1,b=2)
3

一些特殊函数

pass 程序什么都不用做
用的地方不多,比如
if age < 10:
print('children')
elif age < 20:
pass
elif age < 30:
print('adult') del python一般会删除那些不用的对象
比如列表与字典中删除时
此外,del会删除该值的引用
>>> a = 1
>>> b = a
>>> del a
>>> b
1
>>> a
NameError: name 'a' is not defined
要注意的是,a虽然会被删除,但是引用b不会被删除,也就是其值实际上没有删除,只是删除了引用a。python实际上是无法删除值的,不过当某个值不再被引用时,python会自动负责内存的回收的。 exec 将字符串当作python语句进行运行
使用必须慎之又慎
>>> exec("print('Mathics')")
Mathics
exec与import比较相当于直接将代码复制到exec这个地方,可能会覆盖原来的变量,而import一般都会有自己的命名空间,exec具有潜在的破坏性。
通常的解决方法是将exec中的代码放在字典中,字典相当于起到名字空间作用
>>> from math import sqrt
>>> scope = {}
>>> exec('sqrt = 1', scope) #将语句在scope域中执行
>>> sqrt(4)
2.0
>>> scope['sqrt']
1 eval 将字符串作为表达式计算并且返回值
>>>eval(input())
1+2*3
7
>>>eval(input())
if 1 < 2 : print('Yes')
SyntaxError: invalid syntax eval不能运行语句
相同的,eval也可以通过上述方法在命名空间中执行 type 返回对象的类型
更深入的,type可以创建一个新的类型,相当于创建一个class
type(类名, 父类的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))
返回该类 >>> World = type('World', (), {'Land': 'Asia'}) # 直接当类使用
>>> a = World()
>>> a.Land
'Asia'
>>> World.Land
'Asia' # 添加函数
>>> def WhereIam(self):
print(self.Land)
>>> World = type('World', (), {'Land': 'Asia', 'WhereIam': WhereIam})
>>> World.WhereIam()
TypeError: WhereIam() missing 1 required positional argument: 'self'
>>> a = World()
>>> a.WhereIam()
Asia isinstance(object, class or type or tuple) 判断object是否为对应类型
>>> isinstance(12,int)
True
>>> isinstance([1,2], list)
True
>>> isinstance((1,2), tuple)
True
>>> a = Person()
>>> isinstance(a, Person)
True

python在函数式编程方面有一些有用的函数

map(func, *iterable)
>>> map(str, range(5)) # Equivalent to [str(i) for i in range(5)]
['0','1','2','3','4'] filter(func, iterable) #过滤掉iterable中不符合func的值,返回剩下值得列表
>>> def isnum(x):
return type(x) == int
>>> seq = ['abc', 12, 'z']
>>> list(filter(isnum, seq))
[12]

Python3 学习第十二弹: 补充something的更多相关文章

  1. Python3 学习第十四弹: 模块学习六之re模块 + 正则表达式 (转)

    本文转自 AstralWind 的博客:Python正则表达式指南 特来收藏 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有 ...

  2. 从零开始学习PYTHON3讲义(十二)画一颗心送给你

    (内容需要,本讲使用了大量在线公式,如果因为转帖网站不支持公式无法显示的情况,欢迎访问原始博客.) <从零开始PYTHON3>第十二讲 上一节课我们主要讲解了数值计算和符号计算.数值计算的 ...

  3. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  4. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  5. Tensorflow深度学习之十二:基础图像处理之二

    Tensorflow深度学习之十二:基础图像处理之二 from:https://blog.csdn.net/davincil/article/details/76598474   首先放出原始图像: ...

  6. Python3基础(十二) 学习总结·附PDF

    Python是一门强大的解释型.面向对象的高级程序设计语言,它优雅.简单.可移植.易扩展,可用于桌面应用.系统编程.数据库编程.网络编程.web开发.图像处理.人工智能.数学应用.文本处理等等. 在学 ...

  7. java jvm学习笔记十二(访问控制器的栈校验机制)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...

  8. 【mongodb系统学习之十二】mongodb修改数据(一)

    十二.mongodb修改数据:update 1).修改数据库数据:update:语法 db.collectionName.update({},{},boolean,boolean): 2).updat ...

  9. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...

随机推荐

  1. [geeksforgeeks] Convert a given Binary Tree to Doubly Linked List

    http://www.geeksforgeeks.org/in-place-convert-a-given-binary-tree-to-doubly-linked-list/ Given a Bin ...

  2. 【转载】一淘技术专家王晓哲:Nginx_lua的测试及选择

    对于Web高性能服务器上的选择,这个是很多人头痛的问题.其实Apache.lighttpd.Nginx都用他们优点,在什么情况下我们如何去选择适合自己的Web高性能服务器,如何去搭建一个适合自己的架构 ...

  3. <string>和<string.h>的区别

    转自:http://blog.csdn.net/houjixin/article/details/8648969 在C++开发过程中经常会遇到两个比较容易混淆的头文件引用#include<str ...

  4. URAL题解—不断跟新中

    1014:简单题,忘了0的情况可以是10,== 1219:找呀找规律,满足N*(N-1)/2+1=X;就是1 的情况了

  5. C#中“貌似”跳出while(true)死循环

    当程序第一次执行到Read()函数时,程序会被阻塞,然后输入字符,Enter之后程序被激活,windows平台会自动在输入字符之后加入回车符和换行符,此时输入流中就有三个字符,然而read每次只读取一 ...

  6. python笔记1

    1.python中的语句块是用缩进表示,并不像C类语言中用{}表示语句块,还有就是语句块的开始貌似是用:表示,然后C类语言中()在python中用"空格"表示了,例如python中 ...

  7. 初识IOS

    编译环境: ssh cloud@10.0.4.148  mx-cloud 1.关于ARM架构 IPHONE上的ARM-CPU架构在不断的进化过程中,目前情况如下: ARMv8 / ARM64 = iP ...

  8. 【mysql5.6】数据类型

    一.数值类型 int(5) 表示显示宽度为5,默认为显示宽度11. zerofill 属性:用0填充前面空位 auto_increment 属性:只用于整数.一般从1开始,每行增加1.一个表最多只能有 ...

  9. 传说中的WCF(4):发送和接收SOAP头

    如果你实在不明白Header是个啥玩意儿,你就想一想你发送电子邮件时,是不是有个叫“附件”的东东?对啊,那么SOAP头是不是可以理解为一种附加信息?就是附加到消息正文的内容. 消息正文又是啥?WCF除 ...

  10. Jmeter 快速入门教程(三-2) -- 设置集结点

    集合点:简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点, 还拿那个用户和密码的地方,每到输入用户 ...