2017-06-20 82 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