【问题标题】:How to use global variables with functions in separate files in python?如何在python的单独文件中使用全局变量和函数?
【发布时间】:2013-08-02 21:20:05
【问题描述】:

我有两个文件 random1.py、random2.py

random2.py 有

def your():  
    global mine  
    mine = 10

random1.py 有

import random2.py

global mine
mine = 4
random.your()
print mine

random1.py 打印出 4 而不是 10。

我的最终目标是让函数能够接收已声明的任何可能变量,并在函数运行后为该变量提供新值。尽管为了组织,我将所有功能都放在一个单独的文件中。我注意到如果我将它们放在同一个文件中,它会起作用。

我正在尝试从 Hoc 复制过程的功能

【问题讨论】:

  • 此代码不会打印4;它会随着ImportError 而死。无论如何,这是一个坏主意,Python 不会让你轻松做到这一点。你最好使用参数将数据传递给函数并返回值来传递数据。
  • 关键字global 具有误导性名称,因为它访问其所在模块(=脚本文件)的命名空间变量

标签: python function variables global


【解决方案1】:
Could you please directly use **random2.mine** instead of declaring it global again, which makes separate copy of mine variable in random1's namespace.

random2.mine = 50
print(random2.mine)


# Another way of modifying attributes of imported module is 
random2.__dict__[mine] = 100
print(random2.mine)

http://docs.python.org/2/tutorial/classes.html#python-scopes-and-namespaces
http://stackoverflow.com/questions/6841853/python-accessing-module-scope-vars

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 2022-08-02
    • 2021-12-14
    • 2023-01-29
    相关资源
    最近更新 更多