天池计划第三天:Python 入门(下)

天池计划第三天:Python 入门(下)

1.完全理解Python迭代对象、迭代器、生成器

容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚。

在这里插入图片描述
2.Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数。与其它语言不同,Python的Lambda表达式的函数体只能有单独的一条语句,也就是返回值表达式语句
lambda 形参列表 : 函数返回值表达式语句
下面是个Lambda表达式的例子:
#!/usr/bin/envpython
li=[{“age”:20,“name”:“def”},{“age”:25,“name”:“abc”},{“age”:10,“name”:“ghi”}]
li=sorted(li, key=lambda x:x[“age”])
print(li)

  1. 命名关键字参数

def functionname(arg1, arg2=v, args, *, nkw, *kw):
“函数_文档字符串”
function_suite
return [expression]

*, nkw - 命名关键字参数,用户想要输入的关键字参数,定义方式是在nkw 前面加个分隔符 *。
如果要限制关键字参数的名字,就可以用「命名关键字参数」
使用命名关键字参数时,要特别注意不能缺少参数名。
在这里插入图片描述
6. 参数组合

在 Python 中定义函数,可以用位置参数、默认参数、可变参数、命名关键字参数和关键字参数,这 5 种参数中的 4 个都可以一起使用,但是注意,参数定义的顺序必须是:

位置参数、默认参数、可变参数和关键字参数。
位置参数、默认参数、命名关键字参数和关键字参数。
要注意定义可变参数和关键字参数的语法:

*args 是可变参数,args 接收的是一个 tuple
**kw 是关键字参数,kw 接收的是一个 dict
命名关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。定义命名关键字参数不要忘了写分隔符 *,否则定义的是位置参数。

警告:虽然可以组合多达 5 种参数,但不要同时使用太多的组合,否则函数很难懂。

7.python 闭包
闭包使得局部变量在函数外被访问成为可能
https://foofish.net/python-closure.html

8.python _new_方法
https://www.jianshu.com/p/08d7956601de
9.python的单例模式
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。
https://www.jianshu.com/p/6ca1b0cdef3b

10.概念划清:python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法
cnblogs.com/chenhuabin/p/10055316.html
在这里插入图片描述
在这里插入图片描述
“类名.变量名”绑定的是类变量,“实例名.变量名”绑定的是实例变量。(不推荐)
在这里插入图片描述
类变量可以通过“类名.变量名”和“实例名.类变量名”(不推荐)的方式访问。实例变量只能通过“实例名.变量名”的方式来访问。

静态方法,类方法,实例方法 :
实例方法,声明时传入的第一个参数必须为self,self指代的就是实例本身。
实例方法能访问实例变量,实例方法可以通过“实例名.实例方法名”来调用,如果要通过类来调用,必须必须显式地将实例当做参数传入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值