2011-06-09 85 views
0

我对Python很陌生,在编写应用程序时,最终导致了一个混乱的结构。下面的例子应该说明我正在尝试做什么。问题是我无法从common.py调用登录方法,因为它只在web.py或website2.py中定义。如何在模块之间构造重复使用的代码

模块common.py

class Browser(): 

    def load_page(): 
     Login.login() 

模块website1.py 进口common.py

class Login: 
    @staticmethod   
    def login(): 
     #code to login to this website 1 

模块website2.py 进口common.py

@staticmethod 
class Login: 
    def login(): 
     #code to login to website 2 

任何思考如何重组这将不胜感激。

回答

1

首先,为什么要静态方法?你可以在全球范围内做def login

其次,您可以将类引用传递给Browser类。 (或如果你采取我的第一个建议,模块参考)

class Browser(object): 
    def __init__(self, loginCls): 
     self.loginCls = loginCls 

    def login_page(self): 
     self.loginCls.login()