类引入了一些新语法:三种新的对象类型和一些新的语义。 9.3.1. 类定义语法类定义最简单的形式如下: class ClassName:
<statement-1>
.
.
.
<statement-N>
类的定义就像函数定义( 习惯上,类定义语句的内容通常是函数定义,不过其它语句也可以,有时会很有用——后面我们再回过头来讨论。类中的函数定义通常包括了一个特殊形式的参数列表,用于方法调用约定——同样我们在后面讨论这些。 进入类定义部分后,会创建出一个新的命名空间,作为局部作用域——因此,所有的赋值成为这个新命名空间的局部变量。特别是函数定义在此绑定了新的命名。 类定义完成时(正常退出),就创建了一个 类对象 。基本上它是对类定义创建的命名空间进行了一个包装;我们在下一节进一步学习类对象的知识。原始的局部作用域(类定义引入之前生效的那个)得到恢复,类对象在这里绑定到类定义头部的类名(例子中是 9.3.2. 类对象类对象支持两种操作:属性引用和实例化。 属性引用 使用和 Python 中所有的属性引用一样的标准语法: class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
那么 类的 实例化 使用函数符号。只要将类对象看作是一个返回新的类实例的无参数函数即可。例如(假设沿用前面的类): x = MyClass()
以上创建了一个新的类 实例 并将该对象赋给局部变量 这个实例化操作(“调用”一个类对象)来创建一个空的对象。很多类都倾向于将对象创建为有初始状态的。因此类可能会定义一个名为 def __init__(self):
self.data = []
类定义了 x = MyClass()
当然,出于弹性的需要, >>> class Complex:
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)
|
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-11-21 16:39 , Processed in 0.036263 second(s), 18 queries .