2024-10-02 06:36:45 发布
网友
frmEnv = __import__(conf) frmEnv.SCHEMA='abc' toEnv = __import__(conf) toEnv.SCHEMA='def' print(frmEnv.SCHEMA, toEnv.SCHEMA)
输出:
('def', 'def')
我希望两个值都不同。 有没有办法使变量的值不可更改(常量或静态)
我不想frmEnv.SCHEMA格式一个值一旦分配给它,它就会改变。你知道吗
正如其他人所解释的,你想做的是完全错误的。但是如果我试着读你的想法(尽管我很少擅长心灵感应),也许你想要的是第一个模块的副本?你知道吗
然后,您可能需要使用^{}模块,并更改对象的副本:
frmEnv = __import__(conf) frmEnv.SCHEMA='abc' toEnv = copy.deepcopy(frmEnv) # or copy.copy() depending on what are the members of frmEnv... toEnv.SCHEMA='def' print(frmEnv.SCHEMA, toEnv.SCHEMA) Output: ('abc', 'def')
您可能还希望使用^{}模块的文件名加载模块,并在当前环境中为其指定两个不同的名称,以便实际加载两次。它应该具有与副本相同的效果,但更多地依赖于文件的文件系统位置,因此不那么优雅(这就是为什么我不举一个例子)。读者很难理解你为什么这么做。你知道吗
HTH公司
python模块只导入一次;第二次导入只是返回已经初始化的模块,其代码不会再次执行。这意味着frmEnv和toEnv是对同一对象的两个引用。你知道吗
frmEnv
toEnv
如果你解释了你想完成什么(具体任务),有人会告诉你怎么做。不是这样的。你知道吗
正如其他人所解释的,你想做的是完全错误的。但是如果我试着读你的想法(尽管我很少擅长心灵感应),也许你想要的是第一个模块的副本?你知道吗
然后,您可能需要使用^{} 模块,并更改对象的副本:
您可能还希望使用^{} 模块的文件名加载模块,并在当前环境中为其指定两个不同的名称,以便实际加载两次。它应该具有与副本相同的效果,但更多地依赖于文件的文件系统位置,因此不那么优雅(这就是为什么我不举一个例子)。读者很难理解你为什么这么做。你知道吗
HTH公司
python模块只导入一次;第二次导入只是返回已经初始化的模块,其代码不会再次执行。这意味着
frmEnv
和toEnv
是对同一对象的两个引用。你知道吗如果你解释了你想完成什么(具体任务),有人会告诉你怎么做。不是这样的。你知道吗
相关问题 更多 >
编程相关推荐