相关疑难解决方法(0)

在函数中使用全局变量

如何在函数中创建或使用全局变量?

如果我在一个函数中创建一个全局变量,我如何在另一个函数中使用该全局变量?我是否需要将全局变量存储在需要访问的函数的局部变量中?

python scope global-variables

2939
推荐指数
22
解决办法
307万
查看次数

是否有一种简单,优雅的方式来定义单身人士?

似乎有很多方法可以在Python中定义单例.Stack Overflow是否有共识?

python singleton design-patterns

427
推荐指数
13
解决办法
27万
查看次数

使用变量和方法的Underscore vs Double下划线

有人很好地向我解释__method()破坏但是由于有很多其他人需要帮助而没有进一步打扰他,我想知道是否有人可以进一步详细说明差异.

例如,我不需要修改但是保持私有所以有人不能做instance._method()?或者它是否只是通过使其独一无二来覆盖另一个变量?我不需要我的内部方法"隐藏",但由于它们是特定的使用我不希望它们在课外使用.

python

127
推荐指数
3
解决办法
9万
查看次数

如何防止模块导入两次?

在编写python模块时,有没有办法防止它被客户端代码导入两次?就像c/c ++头文件一样:

#ifndef XXX
#define XXX
...
#endif
Run Code Online (Sandbox Code Playgroud)

非常感谢!

python import module

29
推荐指数
3
解决办法
2万
查看次数

在python中导入一个带参数的模块

是否可以在python中传递带有一些参数的模块?

所有我的意思是参数是模块中存在一个未在该模块中初始化的变量,我仍然在该模块中使用该变量.简而言之,我希望行为类似于函数,但与函数不同,我希望模块的变量在调用代码中公开.

例如

a.py

#lists like data, count, prob_distribution are constructed from training_pool (not initialized in this file)
x = pymc.Uniform('x', lower = 0, upper = 1)
rv = [ Multinomial("rv"+str(i), count[i], prob_distribution[i], value = data[i], observed=True) for i in xrange(0, len(count)) ]
Run Code Online (Sandbox Code Playgroud)

b.py

import a  #I want some way tr pass value of training_pool
m = pymc.MCMC(a)
Run Code Online (Sandbox Code Playgroud)

我希望a.py中的所有随机变量都暴露给MCMC.我对我手头的问题采取了更好的方法,但我也想知道在python中是否可以传递模块的参数

python python-module python-import mcmc pymc

12
推荐指数
4
解决办法
1万
查看次数

通过Python中的global关键字从外部作用域访问变量

根据这个问题的接受答案,我理解我无法创建纯全局变量.好的,很酷.

然而,他继续说:

[..]你所能做的只是在特定范围内制作一个变量.(如果在Python解释器中创建变量,然后导入其他模块,则您的变量位于最外层范围内,因此在Python会话中是全局的.[..]

好的,所以我们不能在原始意义上分配全局变量,但似乎可以通过global关键字从包中访问最外层范围内的变量,对吗?

显然,在我通过命令行参数访问传递给我的python程序的变量的努力中,我显然缺少一些关键的东西.

我的程序有通常的__main__.py,它处理参数解析并从我的python模块执行代码backend.

backend具有依赖于通过命令行参数输入的代码.但是,我似乎无法提供这些参数backend.

我的包的布局是:

mypackage
- __main__.py
- backend/
    -__init__.py
    -direction.py
Run Code Online (Sandbox Code Playgroud)

这是__main__.py:

import argparse

# Setup ArgParser
parser = argparse.ArgumentParser(description="Fancy Description of program.")
parser.add_argument('--tar', nargs=1, dest='target',
                help='Specify output folder.',
                default=['/path/to/output'])

target_dir = args.target[0]

# Import backend now that our variable is set.
from backend.direction import direction
Run Code Online (Sandbox Code Playgroud)

我的backend/direction.py:

global target_dir
print(target_dir)
Run Code Online (Sandbox Code Playgroud)

运行这个提出了一个NameError: 'target_dir' is not defined.那么大便呢?我在这里假设是不可能的,还是我只是搞砸了声明?

python scope global-variables variable-declaration

2
推荐指数
1
解决办法
2984
查看次数