在python模块

时间:2015-07-09 08:28:39

标签: python

我为我经常在其他脚本中使用的一些全局函数编写了一个python模块。 当它连接到API时,我需要告诉它登录凭据和要连接的主机名。 目前我在我的模块中这样做了:

# set URL and API version
URL = ""
API = ""

# set login
USER = ""
PASS = ""

然后我在我的其他脚本中使用它:

import MyModule as t
# set URL
t.URL = "someapi.server.com"
t.API = "v3"
t.USER = raw_input("Username:")
t.PASS = getpass.getpass("Password for " + t.USER + ":")

但我想让我的模块也可供其他人使用,因此我想在允许使用模块中的其他功能之前验证URL和API版本。也许我对此完全错了,现在我的方式是对的? 我尝试在我的模块中验证值,但是在导入它的那一刻,变量没有设置,并且肯定会被我的检查失败。 有这样的最佳做法吗?

1 个答案:

答案 0 :(得分:0)

将这些信息放在全局变量中似乎不合适,因为你想要不同值的地方之间的泄漏,初始化之前使用的可能性等等。

我建议更明确地表示您的配置,例如传递模块中定义的特殊类:

class xxx_api_conf:
    def __init__(self,version,url,user,password):
        self.version=version
        self.url=url
        self.user=user
        self.password=password