-
python中属性操作的魔法方法
__getattribute__():属性访问拦截器在访问对象的属性时自动调用。在python中,类的属性和方法都理解为属性,均可以通过__getattribute__访问或拦截。class Test: def __init__(self,x,y): self.x=x self.y=y def __getattribute__(self,name): if name == 'x': return '想要获取x值?没门' else: return super()....
2018-11-23 -
python中对象信息魔法方法
__str__():定义对类的实例调用str()时的行为,print(object)时,会默认调用str(object)方法然后输出__repr__():定义对类的实例调用repr(object)时的行为。如果说__str__()体现的是一种用户的可读性,那么__repr__()方法产生的是机器可读的输出(大部分情况下,其输出可以作为有效的Python代码)class Foo: def __str__(self): return ‘我是Foo类的对象的__str__()返回值‘ def __repr__(self): return ‘我是F...
2018-11-23 -
python中类的构造和构析魔法方法
__new__()方法(构造方法):class Foo(object): def __new__(cls,*args,**kwagrs): print(‘cls的值是:‘,cls) print(‘cls的类型是:‘,type(cls)) return super().__new__(cls,*args,**kwagrs) a=Foo() cls的值是: cls的类型是: 该方法第一个参数cls是当前正在实例化的类,可以看出,系统自动给变量cls赋值为当前类Foo1、如果类中没有重写__new__()方法,Python默认是调用该...
2018-11-23 -
python类或对象中的魔法属性
对于一个类,python定义了许多可用的魔法属性,有些每个类都默认存在,有些需要用户手动定义。__doc__:类的文档信息,类的第一个逻辑行的字符串__name__:获取类的名称,只能使用Class.__name__,对象没有该属性__module__:类或者对象的所属的类所在模块__dict__:返回类的所有属性和属性值组成的字典,不包括继承来的属性和方法。__class__:获取实例对象的类(object.__class__),显示内容类似,使用类直接获取该属性ClassName.__class__,显示内容__bases__:获取指定类的所有直接父类(父类的父类不显示)组成的元组,...
2018-11-23 -
Python中的静态方法和类方法
静态方法一般情况下我们在类中定义方法时第一个参数是self,也就是将该方法和该实例对象绑定,这样该方法就可以通过实例对象进行访问但是有些情况下我们需要在创建时进行一些必要的前提操作,如参数检测等,此时对象尚未创建,不能使用对象的方法来操作我们可以使用__init__()方法进行必要的前提操作,我们也可以使用静态方法来完成该操作python中使用@staticmethod修饰符对静态方法进行修饰,并且静态方法不需要第一个参数self使用ClassName.func()来调用静态方法不使用@staticmethod修饰符的第一个参数不为self的方法也可以使用ClassName.func()...
2018-11-21