如何在模块之间构造重用代码

时间:2011-06-09 18:12:18

标签: python module

我对Python很陌生,在编写应用程序时,最终得到的结构有点混乱。下面的例子应该说明我正在尝试做什么。问题是我不能从common.py调用login方法,因为它只在website1.py或website2.py中定义。

模块common.py

class Browser():

    def load_page():
        Login.login()

模块website1.py     import common.py

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

模块website2.py     import common.py

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

对于如何重组这一点的任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

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

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

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