我試圖讓多個類從一個類繼承,但使用相同的實體,而不是每次都創建不同的實體。
class ClassA(object):
def __init__(self):
self.process_state = "Running"
self.socket_list = []
def method_a(self):
print("This is method a")
class ClassB(ClassA):
def __init__(self):
super().__init__()
def method_b(self):
if self.process_state == "Running":
self.socket_list.append("From Method B")
print(self.socket_list)
print("This is method b")
class ClassC(ClassA):
def __init__(self):
super().__init__()
def method_c(self):
if self.process_state == "Running":
print(self.socket_list)
self.socket_list.append("From Method C")
print("This is method c")
print(self.socket_list)
運行的函式:
CB = ClassB()
CB.method_b()
CB.method_b()
CC = ClassC()
CC.method_c()
結果:
['From Method B']
This is method b
['From Method B', 'From Method B']
This is method b
[]
This is method c
['From Method C']
期望的結果:
['From Method B']
This is method b
['From Method B', 'From Method B']
This is method b
['From Method B', 'From Method B']
This is method c
['From Method B', 'From Method B', 'From Method C']
我試圖讓多個類從一個類繼承,但使用相同的實體而不是每次都創建不同的實體。
uj5u.com熱心網友回復:
實作此目的的一種方法是使套接字串列成為靜態變數,但我不確定是否推薦這樣做。
class ClassA(object):
socket_list = []
def __init__(self):
self.process_state = "Running"
def method_a(self):
print("This is method a")
輸出:
['From Method B']
This is method b
['From Method B', 'From Method B']
This is method b
['From Method B', 'From Method B']
This is method c
['From Method B', 'From Method B', 'From Method C']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/418621.html
標籤:
