【发布时间】:2018-05-21 20:02:31
【问题描述】:
我有一个脚本,它有一个在整个脚本中用于各种类和其他函数的函数。
例如:
from scipy.stats import beta
import matplotlib.pyplot as plt
def function(i):
x = beta.pdf(i,a=10,b=2, scale = 100, loc = -50)
return x
def plotme():
graphme = []
for i in range(500):
graphme.append(function(i))
plt.plot(graphme)
def average():
averageme = []
for i in range(500):
averageme.append(function(i))
average = sum(averageme)/float(len(averageme))
return print(average)
现在,如果我想导入模块并调用 plotme() 或 average(),它将使用函数 (i) 中的值。但是有没有办法让我在导入时更改函数(i)中的 a、b、比例和 loc 的值?我知道我可以更改每个功能以允许它更改,但我希望我可以调整初始功能。
理想情况下,我希望能够做这样的事情:
import mymodule
mymodule.function(i, a = 500, b = 200, scale = 50, loc = 0)
mymodule.plotme()
并且 plotme() 将基于新值而不是脚本中的编码。
【问题讨论】:
-
理想情况下,
plotme()和averageme()会将函数作为其参数之一,因此您可以将它们应用于您想要的任何函数。 -
你不能只传递 a、b、scale 和 loc 作为参数并为它们分配默认值吗?
def function(i, a=10, b=2, scale=100, loc=-50),您可以在模块中将默认值作为常量传递给其他函数。