我有一个小模块写成:
心理测量学.py 的内容
def prob3pl(theta, D = 1.7, a, b, c):
result = c + (1 - c) / (1 + np.exp(-D * a * (theta - b)))
return(result)
def gpcm(theta, d, score, a, D=1.7):
Da = D * a
result = np.exp(np.sum(Da * (theta - d[0:score]))) / np.sum(np.exp(np.cumsum(Da * (theta - d))))
return(result)
if __name__ == '__main__':
gpcm(theta, d, score, a, D=1.7)
prob3pl(theta, D = 1.7, a, b, c)
现在使用 python 解释我执行以下操作:
import psychometrics as py
import numpy as np
py.prob3pl(0, a = 1, b= 0, c=0)
但是,在运行时会产生
>>> py.prob3pl(0,a=1,b=0,c=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: prob3pl() missing 1 required positional argument: 'D'
当我将函数复制并粘贴到解释器中时,它使用默认值运行,D = 1但在导入时不会发生这种情况。
我犯了什么错误,导致导入模块时无法识别 D 的默认值?
白板的微信
相关分类