欢迎光临散文网 会员登陆 & 注册

Python个人学习笔记 杂项(一)

2023-04-28 15:26 作者:ベレッタ  | 我要投稿

动态设置/获取对象的属性

⑵ isinstance()函数

⑶ 重写

⑷ 装饰器 

⑸ functools.reduce()函数

⑹ enumerate()函数

⑺ filter()函数

⑻ 函数名变量

⑼ 数字内下划线

⑽ help()函数 函数注释



⑴ setattr() / getattr()

动态设置/获取对象的属性。

可以根据需要,用 setattr() 函数动态地设置类中没有预设过的属性。

用 getattr() 函数可以获取属性。


⑵ isinstance()函数

用于判断类型。

相比用 type() 函数,可以一次同时判断多种类型。

第一个参数为判断的对象,第二个参数为类型,或者多个类型组成的元组。


⑶ 重写

子类如果想覆盖或扩展父类中某函数的功能,可以用函数的重写。

例:

定义了一个可以实现负整数乘法的字符串类,但又想要这个自定义字符串类有自带的字符串的所有功能,这时候可以继承原字符串类,然后再重写乘法法则函数。


⑷ 装饰器 

用于包装一个函数,可以执行原始函数的所有操作,并添加其他要执行的语句。

装饰器的参数为所要包装的函数的函数名,返回包装好的新函数。

装饰器中,需要定义新函数(函数名也可以随便临时命名一个,最后用原函数名替换新函数名)。参数须为原函数所能接受的参数,但由于可以包装各种不同的函数,并不能确定原函数到底要什么参数,所以需要新函数能接受可变长度参数,用*args接受任意长度的参数列表,用**kwargs接受任意长度的关键字参数(参数名可以随便换,惯用是这2个名)。

在新函数中引用旧函数、添加新语句,最后装包好的函数可以执行原函数和新加语句。

最常用来添加确定函数的执行时长。

也可以给新函数重新命名。

@运算符

用@运算符可以直接包装原函数并把新函数赋值给原函数。


⑸ functools.reduce()函数

对一个序列进行迭代操作,返回一个单一的结果值。

第一个参数为要执行的函数,第二个参数为可迭代对象。

工作原理为,从可迭代对象取出前2个元素执行第一个参数的函数,执行结果与下一个元素再次执行函数,直到结束。

可以少写不必要的循环。

运用operator库,可以不需要再用定义匿名函数来引用基本运算。


⑹ enumerate()函数

用于将一个可迭代对象组合为一个索引序列,同时列出数据和数据下标组成的元组,默认从0开始。


⑺ filter()函数

用于对可迭代对象中的每个元素进行判断,返回值为 True 的元素组成一个迭代器。


⑻ 函数名变量

函数名(包括匿名函数)也可以作为字典、列表的元素。


⑼ 数字内下划线

可以用下划线划分数字(读取时无视下划线,用于方便读取大数字)。
不能放在第一个数字前,不能用双下划线。(会被当作变量名)


⑽ help()函数 函数注释

可以为自定义类和函数写注释。

注释须接在类名、函数名接下来一行,并用三引号引用。

用 help() 函数可查看注释。




Python个人学习笔记 杂项(一)的评论 (共 条)

分享到微博请遵守国家法律