python基础方面二

xiaoxiao2021-02-28  78

第二部分  对象与内建函数

对象

xx: 公有变量

_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问

__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)

__xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字

xx_:单后置下划线,用于避免与Python关键词的冲突

__init__(self,x,y) 初始化可以传参数  不需要返回值  self对象是__new__返回的值

__str__(self):实例字符串表示,可读性  print(类实例),如没实现,使用repr结果

__repr__  实例字符串表示,准确性  类实例 回车 或者 print(repr(类实例))

__del__(self): 删除对象时默认调的方法  del 对象 来删除对象(引用计数减1)

__new__ (cls)  return object.__new__(cls)还可以通过父辈的__new__

__dict__  实例自定义属性 vars(实例.__dict__)

__doc__ 类文档,子类不继承  help(类或实例)

__getattribute__ 属性访问拦截器  访问实例属性时  object.__getattribute__(self,obj) no self.test

__bases__ 类的所有父类构成元素  类名.__bases__

__all__ 如果文件中有它,那么这个变量中的元素,不会被from xxx import *时导入

__class__ 实例所在的类  实例.__class__

__name__  可以在模块中测试功能 一般 if __name__ ==__"main"

__metaclass__可以指定元类来创建对象

__slots__  限制动态创建属性方法 __slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的

调用父类 super

多态 定义时的类型和运行时的类型不一样,此时就成为多态    执行一个方法,只有在执行时才能知道执行的是父类,还是子类

python 的面 向对象的三个基本要素,封装继承多态

类属性,所有类对象和实例对象共有,内存只有一份  #实例属性会屏蔽掉同名的类属性

类方法 @classmethod 第一个参数必须是类对象,一般以cls作为第一个参数

静态方法  @staticmethod  静态方法中引用类属性的话,必须通过类对象来引用

内建函数  sorted 排序  reduce 累加元素 filter 过滤  map根据函数对指定序列映射  range  生成器partial函数(偏函数)  把一个函数的某些参数设置默认值,返回一个新的函数,调用这个新函数会更简单。

wraps函数  也是个装饰器,作用是避免函数文档被装饰器覆盖

转载请注明原文地址: https://www.6miu.com/read-58890.html

最新回复(0)