在下面的函数中,如何在chat和chat1中使用pim函数的参数而不将它们作为参数传递?
base.py:
def pim(mode, tag, population_file, variable_file, aggregation, user,
passw, email, working_schema, output_schema):
print mode
print tag
print population_file
print variable_file
print aggregation
print user
print passw
print email
print working_schema
print output_schema
chat()
chat1()
我尝试将from base import *
用于chat.py(其中创建了chat()
),但它无法识别。我想知道是否有办法访问参数而不将它们作为参数传递?
答案 0 :(得分:0)
我觉得你避免传递参数的原因是有一个 bloody long 参数列表。
您实际上可以将函数pim
更改为以下内容:
def pim(*args):
print(args[0])
print(args[1])
print(args[2])
print(args[3])
chat(args)
chat1(args)
# You can call this function by
pim(mode,tag,population_file,variable_file,aggregation,user,passw,email,working_schema,output_schema)
或者您可以使用可选参数格式,如下所示:
def pim(**kwargs):
print(kwargs['mode'])
print(kwargs['tag'])
print(kwargs['population_file'])
print(kwargs['variable_file'])
chat(kwargs)
chat1(kwargs)
# and you can call your function by
pim(mode='1', tag='2', 'population_file'=3, 'variable_file'=4)
或者您可以使用global
关键字使参数全局可用,但不建议使用此解决方案。
答案 1 :(得分:0)
您可以将输入参数存储在变量中并使变量成为全局变量,例如:
mode = ""
def pim(mode,tag,population_file,variable_file,aggregation,user,passw,email,working_schema,output_schema):
globals()['mode'] = mode
chat()
chat1()