2017-04-11 49 views
-4
class A: 
    x = 'variable' 
    class B: 
     #how to access variable X from class A 

我剛開始學習OOP並試圖弄清楚如何在實踐中使用它。如何從主類中的子類獲取變量?

+1

你爲什麼要在另一個類中定義一個類? – glibdud

+0

我不能這樣做嗎? – EDJOE

+3

我想這是可能的,但我想不出爲什麼你會這樣做。如果你想學習繼承,這不是如何完成的。 – glibdud

回答

2

簡短回答:這是不可能的(或者如果是的話,這並不容易),因爲只要class A:開始的區塊尚未完成,您將無法訪問A

但是你可以將它定義爲財產:

class A: 
    x = 'variable' 
    class B: 
     @property 
     def x(self): 
      return A.x 

被稱爲所以class A定義後調用發生時,他們正在執行中的方法和屬性的代碼。所以,你可以用它:

>>> A.B().x 
'variable' 

不過我,如果你「剛開始學習面向對象」強烈建議您使用嵌套類。嘗試着重於一些真正的OOP主題,如inheritance