1 __init__这个方法一般用于初始化一个类
class Test(object): """ 用于初始化类 """ def __init__(self, a, b): self.a = a self.b = b def res(self): return (self.a, self.b) t = Test(100, 200) print t.res() """ (100, 200) """
2 __str__ 这是一个内置方法, 只能返回字符串, 并且只能有一个参数self
class Test(object): """ 用于初始化类 """ def __init__(self, a, b): self.a = a self.b = b def res(self): return (self.a, self.b) def __str__(self): return '这是一个类' t = Test(100, 200) print '-----' # print t = print t.__str__ print t
3 __new__() 方法是创建类实例的方法, 创建对象时调用, 返回当前对象的一个实例
class Test(object): def __init__(self, age): print '__init__在运行' self.age = age def __new__(cls, age): print '__new__在运行' return super(Test, cls).__new__(cls, age) t = Test(20)
上例的执行逻辑:
先执行t = Test(20)
首先执行age参数来执行Test类的__new__()方法, 这个__new__方法会返回Test类的一个实例(通常使用)
4 __call__() 对象通过提供一个__call__(self, *args, *kwargs)方法可以模拟函数的行为, 如果一个对象提供了该方法, 可以向函数一样去调用它
class Test(object): def __init__(self): print (100) def __new__(cls): print (200) return super(Test, cls).__new__(cls) def __call__(self, x): print 300 t = Test() t(100)
Recent Comments