在模块之间传递变量[重复]
Posted
技术标签:
【中文标题】在模块之间传递变量[重复]【英文标题】:Passing variables between modules [duplicate] 【发布时间】:2011-04-21 14:25:41 【问题描述】:我想知道为什么这个简单的代码不起作用。
在 main.py 我有
def foo():
HTTPHelper.setHost("foo")
host = HTTPHelper.host()
在 HTTPHelper.py 中:
_host = None
def setHost(host):
_host = host
def host():
return _host
但是当我单步执行 foo() 时,host 变成了 NoneType,即使我之前设置它就行了。很迷茫……
【问题讨论】:
【参考方案1】:def setHost(host):
global _host
_host = host
【讨论】:
【参考方案2】:格伦的回答将在一个模块内解决您的直接问题,但为了给男人一根鱼竿而不是一条鱼: Short Description of the Scoping Rules?
你会很好地阅读范围和 Python 的 LEGB 规则。 存在概念的范围和领域也适用于一般的编程和分析,值得花时间理解这些概念。
还值得注意的是,如果您将此类事物视为对象(并且您编写的内容看起来像您打算的那样),您应该编写一个类并设置其属性,而不是您之后处理的全局变量一个模块导入。
【讨论】:
我给了他一张鱼的照片,希望他自己研究学习如何制作自己的鱼竿——global
关键字和搜索引擎对他来说应该足够了找到其余的。
很公平,顺便说一句,我无意冒犯或偏向您的回复,只是注意到为什么另一个回复相同的主题。
感谢您的提示。我知道应该如何设计它,现在它是一个合适的类,我正在研究另一部分,只是想要一些快速有效的东西,当一些简单的东西没有时,它真的被搞砸了。我是python新手,对编程不是那么陌生。在同一个项目中使用 Python、C++、C#、php 会打乱你的语法思维:)以上是关于在模块之间传递变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在视图控制器之间的 NSString 中传递数据 - 目标 C [重复]