发布时间:2022-04-21 09:53:45 人气:204 作者:多测师
类定义最简单的形式如下:
class ClassName:
进入类定义部分后,会创建出一个新的命名空间,作为局部作用域——因此,所有的赋值成为这个新命名空间的局部变量。特别是函数定义在此绑定了新的命名。类定义完成时(正常退出),就创建了一个 类对象 。基本上它是对类定义创建的命名空间进行了一个包装;原始的局部作用域(类定义引入之前生效的那个)得到恢复,类对象在这里绑定到类定义头部的类名(例子中是 ClassName )。
类对象支持两种操作:属性引用和实例化。属性引用的使用和 Python 中所有的属性引用一样的标准语法:obj.name 。类对象创建后,类命名空间中所有的命名都是有效属性名。类的实例化使用函数符号。只要将类对象看作是一个返回新的类实例的无参数函数即可。如下所示:
class MyClass:
"""A simple example class"""
id = 12345
def __init__(self,realpart,imagpart):
self.r = realpart
self.i = imagpart
def f(self): return 'hello world'
if __name__=="__main__": x = MyClass(3.0, -4.5)
那么 MyClass.id 和 MyClass.f 是有效的属性引用(MyClass.r不属于类对象的有效引用,属于实例的有效引用),分别返回一个整数和一个方法对象。也可以对类属性赋值,可以通过给 MyClass.id 赋值来修改它。MyClass()是一个新的类实例 并将该对象赋给局部变量 x 。类的实例化操作会自动为新创建的类实例调用 __init__() 方法。
按照定义,类中所有(用户定义)的函数对象对应它的实例中的方法。在例子中,x.f 是一个有效的方法引用,因为 MyClass.f 是一个函数。但 x.id不是,因为 MyClass.id 不是函数。不过 x.f 和 MyClass.f 不同--它是一个方法对象 ,不是一个函数对象。而且 x.f 是一个方法对象,它可以存储起来以后调用。下面的例子会不断的打印 hello world 。
xf = x.f
while True:
print xf()
以上内容为大家介绍了python初始类以及一些说明,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/