類定義最簡單的形式如下:
classClassName:
進入類定義部分后,會創建出一個新的命名空間,作為局部作用域——因此,所有的賦值成為這個新命名空間的局部變量。特別是函數定義在此綁定了新的命名。類定義完成時(正常退出),就創建了一個類對象?;旧纤菍︻惗x創建的命名空間進行了一個包裝;原始的局部作用域(類定義引入之前生效的那個)得到恢復,類對象在這里綁定到類定義頭部的類名(例子中是ClassName)。
類對象支持兩種操作:屬性引用和實例化。屬性引用的使用和Python中所有的屬性引用一樣的標準語法:obj.name。類對象創建后,類命名空間中所有的命名都是有效屬性名。類的實例化使用函數符號。只要將類對象看作是一個返回新的類實例的無參數函數即可。如下所示:
classMyClass:
"""Asimpleexampleclass"""
id=12345
def__init__(self,realpart,imagpart):
self.r=realpart
self.i=imagpart
deff(self):return'helloworld'
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是一個方法對象,它可以存儲起來以后調用。下面的例子會不斷的打印helloworld。
xf=x.f
whileTrue:
printxf()
以上內容為大家介紹了python初始類以及一些說明,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。