模块数据成员?

您如何定义"模块数据成员"(我想了解如何
在转换为课程之前工作)?
现在,我正在定义一个模块中的变量,该变量被放入全局
名称空间.相反,我想将它们放在一个"模块全局"名称空间中
无论该模块是否被导入还是运行,都将是相同的
__主要的__.
谢谢
PS抱歉,几乎是多余的职位.我只是想完善我的问题
当我更好地理解自己的困惑时.
谢谢
- -
彼得·比斯穆蒂(Peter Bismuti)
波音

# 回答1


彼得·J·比斯穆蒂(Peter J. Bismuti)写道:
除非您计算__ builtins __-
你不应该:)
您所有定义的顶级(全局)模块VAR均为该模块的本地.
但是这里当然有一个小问题,在使用
模块作为主脚本:然后将在两个不同的不同之下知道该模块
名称,模块名称和__-main __.当然,只有有人进口
模块本身.
为此,常见的补救措施是:
....#我自己有很多模块代码
def main():
#在这里做mainy的事情
如果__name__ ==" __ -main __":
导入自己
我自己.main()
当然,这不会阻止__ -main __存在,也不会运行
初始化代码两次.但是,如果该模块应该做一些工作,
它将在所有其他导入模块看到的所有数据上运行.
您可以使用明确的init() -
创建全球状态(请记住,这只是模块 - 盘子).
diez
# 回答2


这在大多数情况下都可以解决问题,但仍然留下
"非模块"全局名称空间中的变量A(请参见下面的输出).
我希望将一个宣布为全球到该模块(以便不在
模块的功能),但在模块名称空间之外看不到
(就像B一样,请参见下文).如何才能做到这一点?
再次感谢
python -i test.py
:>>打印测试
10
:>>打印
0
:>>打印b
Trackback(最近的最新电话):
文件" ",第1行,在?
名称:名称" b"未定义
____ test.py ___
a = 0
def geta():
全球a
返回
def run():
全球a
a = 10
如果(__NAME __ ==" __ main__"):
进口测试
测试运行()
______
- -
彼得·比斯穆蒂(Peter Bismuti)
波音信息技术
华盛顿州伦顿
(425)234-0873 W
(425)442-7775 C
# 回答3


彼得·J·比斯穆蒂·施里布(Peter J. Bismuti Schrieb):
除非您从模块中删除a = 0并将其放入
一些初始化功能.
引用自己:
"""
当然,这不会阻止__ -main __存在,也不会运行
初始化代码两次.但是,如果该模块应该做一些工作,
它将在所有其他导入模块看到的所有数据上运行.
"""
您当然也可以删除__ -Main __中的所有内容,但是...
您为什么关心__. __.
diez

标签: python

添加新评论