1、类

类定义格式如下:

class <类名>:
    类体

类中除了定义函数,还可以包含其他语句。一个类中的函数定义通常有一个特殊的参数列表形式,以在类外调用这个函数。

2、类对象

类支持两种操作:属性引用和实例化。

属性引用

调用类的属性:obj.name,name是类中定义的变量或函数的名字。

示例:

class MyClass:
  i=12345

  def f(self):
    print("hello world")

上面示例中MyClass.i和MyClass.f是有效的属性引用,分别引用一个整数和一个函数。

类实例化

示例:

x = MyClass()

上面的示例,创建该类的新实例并将对象分配给本地变量x。

一个类可以定义一个名为init()的特殊方法。

示例:

def __init__(self, data):
  self.data=23

当一个类定义了一个init()方法时,类会自动调用init()新创建的类实例。可以通过x=MyClass()的方式获得。在这种情况下,赋予类实例化的参数被传递给init()。

示例:

>>> class ComplexClass:
...   def __inis__(self, r, i):
...     self.r = r
...     self.i = i
...     print(self.r + self.i)
...     
...     
... 
>>> x = ComplexClass(3, 6)
9
>>> x.r, x.i
(3, 6)

实例对象

示例:

class Complex:
  def __init__(self, r, i):
    self.r = r
    self.i = i
    print(self.r + self.i)

x = Complex(3, 6)
x.counter = 1
while x.counter < 10:
    print("hello",x.counter)
    x.counter = x.counter * 2
print(x.counter)
del x.counter

运行结果:

9
hello 1
hello 2
hello 4
hello 8
16