Python类自定义
python类关键字 __init__ vs __new__ __init__为初始化方法,__new__为真正的构造函数。 描述符Descriptor __contains__ __slots__ 定制类 type() python作为动态语言,和静态语言最大的不同,即函数和类的定义,不是编译的时候创建的而是动态创建的。我们常见的对类的定义: 1 2 3 class Hello(object): def hello(self, name='world'): print('Hello, %s.' % name) >>> from hello import Hello >>> h = Hello() >>> h.hello() Hello, world. >>> print(type(Hello)) <class 'type'> >>> print(type(h)) <class 'hello.Hello'> type()函数可以查看一类类型或者变量的类型,Hello是一个class, 它的类型是个type,而h是一个instance, 它的类型就是class Hello。 同时有一个概念,就是type()不仅可以返回对象的类型,还可以创建出新的类型。我们可以不用定义class Hello() ...而动态创建出Hello类。 >>> def fn(self, name='world'): # 先定义函数 ... print('Hello, %s.' % name) ... >>> Hello = type('Hello', (object,), dict(hello=fn)) # 创建Hello class >>> h = Hello() >>> h.hello() Hello, world. >>> print(type(Hello)) <class 'type'> >>> print(type(h)) <class '__main__.Hello'> 创建一个class对象,type()函数传入3个参数: ...