類定義最簡單的形式如下:
classClassName:
進(jìn)入類定義部分后,會創(chuàng)建出一個(gè)新的命名空間,作為局部作用域——因此,所有的賦值成為這個(gè)新命名空間的局部變量。特別是函數(shù)定義在此綁定了新的命名。類定義完成時(shí)(正常退出),就創(chuàng)建了一個(gè)類對象?;旧纤菍︻惗x創(chuàng)建的命名空間進(jìn)行了一個(gè)包裝;原始的局部作用域(類定義引入之前生效的那個(gè))得到恢復(fù),類對象在這里綁定到類定義頭部的類名(例子中是ClassName)。
類對象支持兩種操作:屬性引用和實(shí)例化。屬性引用的使用和Python中所有的屬性引用一樣的標(biāo)準(zhǔn)語法:obj.name。類對象創(chuàng)建后,類命名空間中所有的命名都是有效屬性名。類的實(shí)例化使用函數(shù)符號。只要將類對象看作是一個(gè)返回新的類實(shí)例的無參數(shù)函數(shù)即可。如下所示:
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不屬于類對象的有效引用,屬于實(shí)例的有效引用),分別返回一個(gè)整數(shù)和一個(gè)方法對象。也可以對類屬性賦值,可以通過給MyClass.id賦值來修改它。MyClass()是一個(gè)新的類實(shí)例并將該對象賦給局部變量x。類的實(shí)例化操作會自動為新創(chuàng)建的類實(shí)例調(diào)用__init__()方法。
按照定義,類中所有(用戶定義)的函數(shù)對象對應(yīng)它的實(shí)例中的方法。在例子中,x.f是一個(gè)有效的方法引用,因?yàn)镸yClass.f是一個(gè)函數(shù)。但x.id不是,因?yàn)镸yClass.id不是函數(shù)。不過x.f和MyClass.f不同--它是一個(gè)方法對象,不是一個(gè)函數(shù)對象。而且x.f是一個(gè)方法對象,它可以存儲起來以后調(diào)用。下面的例子會不斷的打印helloworld。
xf=x.f
whileTrue:
printxf()
以上內(nèi)容為大家介紹了python初始類以及一些說明,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。