Python是一門面向對象的編程語言,類是Python中面向對象的基本概念。在類內部,變量分為類變量和實例變量兩種。
類變量是在整個類中都可以訪問的變量,它不屬于任何一個實例,而是屬于類。使用類名或實例名都可以訪問到它。類變量通常會被定義在類的最頂層。下面是一個例子:
class MyClass: class_var = 0 # 這是一個類變量 def __init__(self, inst_var): self.inst_var = inst_var # 這是一個實例變量
實例變量是在類實例化之后,每個實例所擁有的變量。它只能通過實例名來訪問。下面是一個例子:
class MyClass: class_var = 0 # 這是一個類變量 def __init__(self, inst_var): self.inst_var = inst_var # 這是一個實例變量 my_object = MyClass(1) print(my_object.inst_var) # 輸出 1
當類變量和實例變量同名時,實例變量會屏蔽掉類變量。也就是說,如果通過實例名來訪問這個同名變量,會訪問到實例變量;如果通過類名來訪問這個同名變量,會訪問到類變量。下面是一個例子:
class MyClass: class_var = 0 # 這是一個類變量 def __init__(self, class_var): self.class_var = class_var # 這是一個實例變量,與類變量同名 my_object = MyClass(1) print(my_object.class_var) # 輸出 1 print(MyClass.class_var) # 輸出 0
總之,在Python中,我們可以定義類變量和實例變量,類變量在整個類中都可以訪問,而實例變量只能在實例中訪問。在使用中,需要注意同名變量的問題,以免產生名字沖突。