所以我在一个名为definitions.py
的文件中有很多函数我的主文件main.py访问这些定义,并且还使用这些函数具有自己的函数。
现在在main.py我有'来自定义导入*'
两个文件都依赖于一组15个初始变量,这些变量我放在definitions.py中,这一切都很好,我的所有功能都运行正常,当我想将我的应用程序用作模型,我想要改变一些变量,看看输出是如何不同的。
基本上我希望我的初始变量在一个碗中,每次调用一个函数时都会访问它,我可以交换并更改这个碗中的值,这意味着下一个被调用的函数使用更新的变量。 / p>
我现在遇到的问题是,我认为,因为变量写在definitions.py就是那样,我无法改变它们。
即使在python shell中我也可以将n1等于其他东西,执行一个使用n1的函数,但它会使用旧的n1,而不是新的,我认为因为在definition.py文件中变量没有改变
是否有某种方法可以获得我不知道的实时访问变量?谢谢。
答案 0 :(得分:3)
你应该使用一个班级。例如,如果您的definitions.py
文件包含:
variable1 = 3
variable2 = 'stuff'
def spam(arg1):
return 'spam' + arg1
def eggs(arg1,arg2):
return 'eggs' + arg1 + arg2
将其更改为
class Definitions():
def __init__():
self.variable1 = 3
self.variable2 = 'stuff'
def spam(self,arg1):
return 'spam' + arg1
def eggs(self,arg1,arg2):
return 'eggs' + arg1 + arg2
现在,您可以从main.py
文件中以稍微不同的方式导入并扫描多个参数值:
import definitions
for parameter in xrange(0,10):
defs = definitions.Definitions()
defs.variable1 = parameter
# do some stuff and store the result
# compare the various results
请记住,现在你的函数都在一个类中,所以不应该调用spam('mail')
,而应该调用defs.spam('mail')
,依此类推。