Python 具有不同文件和在函数之间传递变量的类
如何将多个变量传递给不同文件中的函数 我注意到有些文件只有函数(它们被分组在单个文件中)。例如,一个文件用于控制安装(具有用于新安装、更新安装等的功能),另一个文件用于授予访问权限(创建新用户、删除用户、更新用户)。这些功能接收大量变量,例如:Python 具有不同文件和在函数之间传递变量的类,python,Python,如何将多个变量传递给不同文件中的函数 我注意到有些文件只有函数(它们被分组在单个文件中)。例如,一个文件用于控制安装(具有用于新安装、更新安装等的功能),另一个文件用于授予访问权限(创建新用户、删除用户、更新用户)。这些功能接收大量变量,例如: access_tool.add_user(cur,con,env,family,iserver,version,login, password,prefix,proxyUser,proxyPass,
access_tool.add_user(cur,con,env,family,iserver,version,login,
password,prefix,proxyUser,proxyPass,
proxyServer,user,pass)
因此,access_工具(文件)和函数(get_add_info)从另一个文件接收这些变量,这些变量是动态的(来自数据库查询的结果)。如何将这些值优雅地传递给不同文件中的函数
示例:
我们有两个重要文件:
- 添加用户ENV newuser newuserpass
工作中的一些人建议我将所有这些都保存在同一个文件中,而不是为每个类创建多个文件,而是为所有类创建一个文件。这取决于值的存储方式。例如,如果从配置文件读取配置值,并且将配置值存储为字典,则可以使用字典解包将值传递到方法调用中。例如,
访问工具。添加用户(**设置)
如果您想在多个函数之间传递变量,我建议您查看传递对象。
.
如果你想做更复杂的事情,你一定要看看这个模块 Python中的文件的概念很模糊。短语“来自文件的变量”没有任何意义。您必须知道这些变量是如何实例化的,它们的作用域是什么 Python中的值不存在于文件中,它们存在于内存中,并由变量指向 对于包含大量参数的函数,通常使用命名参数:
def fun(**args):
param1 = args.get('param1', 'default_value')
param2 = ... # etc
fun(param1='val1', param2 = 'val2')
这可能就是你想要的优雅:)
因此,您的代码可能如下所示:
def main():
#initialization
import access_tool
con = database_connection()
servers = query_database_for_servers()
for server in servers:
#assume server is a dict of values
access_tool.add_user ( **server )
def add_user ( **params ):
# connect to params['server'] using params['env']
# and add user with other params[]
您的add\u user
功能可以修改如下:
def main():
#initialization
import access_tool
con = database_connection()
servers = query_database_for_servers()
for server in servers:
#assume server is a dict of values
access_tool.add_user ( **server )
def add_user ( **params ):
# connect to params['server'] using params['env']
# and add user with other params[]
您的英语水平远远高于平均水平:)@Thales,高于StackOverflow用户的平均水平。已编辑,以修复语法和格式:)但是当前解决方案有什么问题?你想修复什么,为什么?代码的编写方式。。。不容易阅读,不遵循PEP8。既然我必须组织起来,我会尽量做到这一点。用更多信息更新问题