在這個例子中如何訪問Parent的名字?
class Parent。
def __init__(self) :
self.name = "toto"。
self.enfant = self.Child()
class Child。
def __init__(self) :
self.child_name="tata"。
def affiche(self)。
print(??Parent.name) # 如何顯示父母的名字?
uj5u.com熱心網友回復:
你不能像在Java中那樣做。Python 中的嵌套類是完全獨立的物件。它們在生活中對它們的父物件沒有任何了解,事實上,當類的主體被執行時,它們看不到它們的父物件。
解決你的問題的方法是在子類中參考父類(另外,不要費力地嵌套類):
class Child。
def __init__(self, parent):
self.child_name = "tata"。
self.parent = parent
def affiche(self)。
print(self.parent.name)
class Parent。
def __init__(self) :
self.name = "toto"。
self.enfants = [Child()]。
如果你要將Child嵌套到Parent中,你仍然可以用同樣的方式來寫,并以self.Child(self)的方式呼叫建構式。
你可能想看看下面的問題,以獲得更多的資訊:
你可能想看看下面的問題。
uj5u.com熱心網友回復:
正如我在評論中所說,除了一個類的定義被嵌套在另一個類的命名空間中之外,你的兩個類之間并沒有什么特殊的關系。為了實作您的愿望,您需要明確地 "告訴"Child類它的父類是誰,并在構造一個實體時將其作為引數傳遞給它--如果它想在以后的其他方法(如affiche())中使用該值,它將需要明確地保存它。
我的意思是:
class Parent。
def __init__(self) :
self.name = "toto"。
self.enfant = self.Child(self) # 傳遞self作為父引數。
class Child。
def __init__(self, parent):
self.parent = parent # Remember parent..
self.child_name="tata"。
def affiche(self)。
print(self.parent.name) # 顯示父類的名字。.
parent = Parent()
parent.enfant.affiche() # -> toto
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/310494.html
標籤:
