2017-06-20 85 views
0
class A(): 
    def __init__(): 
     self.fields() 

    def fields(): 
     ### code to display entry_field for user input 

    def user_entry(self): 
     club_name_existing = entry_field.get() 

class B(): 
    def __init__(): 
     pass 

    def load_entry(): 
     db = create_engine('sqlite:///' + A.club_name_existing + '.db') 

我需要運行類似於此的代碼,但無法訪問變量「club_name_existing」。
捕捉到我的問題是,我不能把方法裏面初始化()用於CLASSA蟒蛇2 - 使用另一個類的方法內的變量

+0

您應該考慮將它們聲明爲類變量。就目前而言,這是本地功能。 –

+0

將會有很多變數放在一起,如果我這樣做,將不會看起來有組織。它會起作用,但希望將所有事情都放在方法上,以達到目的。更容易引用回...編輯,對不起,我可能誤解了你的評論。你的意思是把變量放在類中而不是在方法內部? – ricky6991

回答

0

如果該值的A所有實例之間共享,可以將其分配到一個類變量:

def user_entry(self): 
    A.club_name_existing = entry_field.get() 

如果每個實例的潛在不同,您必須將A的實例傳遞給load_entry方法或B__init__。你必須選擇哪一個更適合你的情況。例如:

def user_entry(self): 
    self.club_name_existing = entry_field.get() 

... 

def load_entry(self, some_a): 
    db = create_engine('sqlite:///' + some_a.club_name_existing + '.db') 
+0

該變量不會改變,只需要從另一個類中調用它就像我的示例...將分配它像你允許我在我的例子中使用?我會試試 – ricky6991

+0

你認爲你可以提供一個將實例傳遞給load_entry或者類b_的__init__的例子嗎?謝謝 – ricky6991

+0

語法錯誤,只需要2個參數(1給出) – ricky6991