欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 類變量共享

阮建安2年前9瀏覽0評論

Python是一種非常流行的編程語言,它的優(yōu)勢之一就是面向?qū)ο缶幊蹋∣OP)的支持。在OOP中,變量可以分為實(shí)例變量和類變量。其中,類變量是指所有該類對象所共享的變量。

Python中的類變量共享機(jī)制非常簡單且易于理解。類變量實(shí)際上是定義在類定義中而不是在__init__()方法中的變量。這些變量在類創(chuàng)建時(shí)就會(huì)被創(chuàng)建,并被所有該類對象所共享。

class MyClass:
class_variable = 0
def __init__(self):
self.instance_variable = 0
def inc_instance(self):
self.instance_variable += 1
def inc_class(self):
MyClass.class_variable += 1
obj1 = MyClass()
obj2 = MyClass()
obj1.inc_instance()
obj1.inc_class()
print(obj1.instance_variable) #打印結(jié)果為1
print(obj2.instance_variable) #打印結(jié)果為0
print(MyClass.class_variable) #打印結(jié)果為1
obj2.inc_instance()
obj2.inc_class()
print(obj1.instance_variable) #打印結(jié)果為1
print(obj2.instance_variable) #打印結(jié)果為1
print(MyClass.class_variable) #打印結(jié)果為2

在上面的代碼中,我們創(chuàng)建了一個(gè)名為MyClass的類。這個(gè)類有一個(gè)實(shí)例變量instance_variable和一個(gè)類變量class_variable。我們創(chuàng)建了兩個(gè)MyClass的對象obj1和obj2。我們先通過obj1調(diào)用了inc_instance()方法,它會(huì)將obj1的instance_variable值加1,此時(shí)obj1的instance_variable值為1,而obj2的值為0。我們再通過obj1調(diào)用了inc_class()方法,它會(huì)將class_variable的值加1,此時(shí)MyClass的class_variable值為1。我們再通過obj2調(diào)用了inc_instance()方法,它會(huì)將obj2的instance_variable值加1,此時(shí)obj1和obj2的instance_variable值都為1。我們最后通過obj2調(diào)用了inc_class()方法,它會(huì)再將class_variable的值加1,此時(shí)MyClass的class_variable值為2。

可以看到,這個(gè)示例中的類變量class_variable可以被所有的MyClass對象所共享。對象之間的實(shí)例變量instance_variable則是獨(dú)立的,一個(gè)對象的實(shí)例變量的值的修改不會(huì)影響其他對象的實(shí)例變量的值。