龙珠训练营-python-part03

简介: python的函数比想象中要丰富很多,尤其是魔法方法,除了我最开始知道的__init__是实例化自动调用,self作为this来使用之外。

python的函数比想象中要丰富很多,尤其是魔法方法,除了我最开始知道的__init__是实例化自动调用,self作为this来使用之外。
还有__new__和参数cls,__new__是对象实例化调用的第一个方法,比__init__还要靠前,而cls则是__new__必须有的参数,表示要实例化的类,只有cls才能将后面的参数传递给__init__,否则后面的__init__操作无法正常进行。
除了这些魔法方法,一个基本的类中包含的魔法方法还有很多,比如在add前后加上__,就变成了__add__,在类中重新定义该方法,就可以将本来的加法改为其他方法。
同时,为了避免进行计算时,前面的值没有需要的方法,还提供了反算术运算符,比如__radd__其实就是在原来的基础上加了r,但是调用的是后者的方法。
把r换成i就变成了增量赋值运算符,替换简单,但是功能却强大。
至于一元运算,属性访问里面的__getattr__,__getattribute__等这些都是一些需要记忆的方法,但是真的去记忆,感觉又大可不必,毕竟想办法重写这些方法,还不如新建一个方法。
新奇的东西往往用处不大,那就说一下应该记忆的东西。
变量的作用域,python虽然有局部变量和全局变量的区别,却可以使用global修改外部作用域的变量,使用nonlocal改变闭包作用域中的变量。
然后是使用lambda关键词来创建匿名函数,可以不写函数名,具体写法是先写lambda,然后写函数的参数,然后是冒号,最后是表达式,可以不写return,因为lambda本身的结果就是返回值。
最后说一下类里面私有属性和公有属性,公有正常定义即可,私有属性需要在变量名前加__,在外部无法直接访问,却可以采用_类名__私有属性变量名的方式获得,所以也就叫伪私有。

目录
相关文章
|
索引 Python
龙珠训练营-python-part02
字符串,列表,元组,集合和字典这些在其他语言中单独存在的类型,在python中我们可以统一称为序列,因为它们都是具有可迭代功能的对象。
122 0
|
SQL 机器人 Java
龙珠训练营-python-part01
python入门学习
82 0
|
数据挖掘 Python
龙珠计划python训练营
龙珠计划python训练营task4
114 0
|
Python
龙珠计划python训练营
龙珠计划python训练营task3
152 0
|
Python
龙珠计划python训练营
python训练营打卡
77 0
|
数据挖掘 Python
Python 训练营笔记 总结篇
学习总结 - 天池龙珠计划 - Python 训练营
225 0
Python 训练营笔记 总结篇
|
9天前
|
存储 人工智能 数据处理
Python:编程的艺术与科学的完美交融
Python:编程的艺术与科学的完美交融
14 1
|
4天前
|
测试技术 调度 索引
python编程中常见的问题
【4月更文挑战第23天】
16 2
|
5天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver