Python類作用域是指類中定義的變量在不同情況下所能被訪問的程度。Python的類作用域是基于了一個(gè)特殊的變量__name__的。當(dāng)我們在類的內(nèi)部定義一個(gè)變量的時(shí)候,它只能在當(dāng)前類中被訪問,但是如果我們在除了當(dāng)前類以外的類或者函數(shù)中定義相同名稱的變量,這個(gè)變量會(huì)產(chǎn)生覆蓋效果,會(huì)覆蓋當(dāng)前類內(nèi)定義的變量。
Python的類作用域分為4種:
1.局部作用域 def function(): name = "Tom" #只能在函數(shù)內(nèi)部直接訪問 print(name) function() #輸出Tom 2.對象作用域 class Person: def __init__(self): self.name = "Tom" #只能通過對象調(diào)用訪問 p = Person() print(p.name) #輸出Tom 3.類屬性作用域 class Person: name = "Tom" #只能通過類名調(diào)用 print(Person.name) #輸出Tom 4.全局作用域 name = "Tom" #在所有作用域中都可以調(diào)用 def function(): print(name) function() #輸出Tom
在Python的類作用域中,我們需要注意變量的作用域范圍,盡可能地避免同名變量的覆蓋,同時(shí)也需要注意類屬性與對象屬性的使用方式區(qū)別。