在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)) ]

b.py

import a  #I want some way tr pass value of training_pool
m = pymc.MCMC(a)

我希望将所有随机变量a.py都暴露给MCMC我愿意面对一个更好的方法来解决我的问题,但是我也想知道是否可以在python中将参数传递给模块。

亚伯拉罕·D·弗拉克斯曼

正如@otus已经回答的那样,无法将参数传递给模块。

我认为您正在关注PyMC2的一些入门示例,这些示例使用一种模式,其中模块将贝叶斯模型中节点的所有代码包装起来。这种方法非常适合入门,但是,如您所见,当您要使用各种变体运行模型时,这种方法可能会受到限制。

幸运的是,PyMC2可以根据列表或字典以及模块来创建MCMC对象。在这种情况下,我建议的是注释中建议的@ oleg-s:使用一个函数。您可以以函数结尾return locals()来获取该模块中所有内容的字典,这是对pymc.MCMC构造函数的适当输入这是一个例子:

# a.py
from pymc import *

count = [10, 10] # perhaps good to put this stuff in data.py
prob_distribution = [[.5, .5], [.1, .2, .7]]
data = [[2, 8], [2, 3, 5]]

def model(training_pool):
    x = Uniform('x', lower = 0, upper = 1)
    rv = [ Multinomial("rv"+str(i), count[i], prob_distribution[i], value = data[i], observed=True) for i in training_pool ]

    return locals()

# b.py
import pymc, a

training_pool = [0]
m = pymc.MCMC(a.model(training_pool))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:导入带有参数的模块?

来自分类Dev

Python:导入带有参数的模块?

来自分类Dev

在python中导入模块

来自分类Dev

Python是否在模块路径中导入所有模块?

来自分类Dev

在python中导入系统模块

来自分类Dev

从Python列表中导入模块

来自分类Dev

无法在python中导入模块

来自分类Dev

在openshift中导入python模块

来自分类Dev

在python中导入Vlc模块

来自分类Dev

无法在python中导入模块

来自分类Dev

在openshift中导入python模块

来自分类Dev

在python中导入系统模块

来自分类Dev

带有iis导入模块的Python

来自分类Dev

在 Python 中导入模块是否会在本地范围内执行模块的所有导入?

来自分类Dev

如何在IntelliJ中导入带有模块和Java包的项目?

来自分类Dev

从包中导入所有模块

来自分类Dev

如何不在Python模块中导入导入的子模块?

来自分类Dev

GtkSource模块未在Python中导入

来自分类Dev

如何在Python中导入liblas模块?

来自分类Dev

无法在python中导入Quandl模块

来自分类Dev

Python无法在库中导入模块

来自分类Dev

在Python中导入模块时运行函数

来自分类Dev

如何在Python中导入liblas模块?

来自分类Dev

在Python中导入Facebook模块时出错

来自分类Dev

如何找到要在python中导入的模块

来自分类Dev

在python3中导入模块

来自分类Dev

python,在vs代码中导入模块

来自分类Dev

无法在python中导入任何模块

来自分类Dev

无法在 PyCharm 中导入 numpy python 模块