此代码一直给我的错误:在python中选择默认参数值?
类型错误:“NoneType”对象有没有属性“的GetItem”
class d_exposure(object):
def __init__(self):
self.files = glob.glob('C:\files')
def exposure(self,level):
level = inspect.getargspec(d_exposure().exposure)[3][0]
print level
def main():
mp = d_exposure()
mp.exposure(level = 'MID')
看来,问题是,它要对水平的默认值。但是,追溯显示它正在获取价值。
Traceback (most recent call last):
File "C:\Users\Documents\my_scripts\exposure.py", line 58, in <module>
main()
File "C:\Users\Documents\my_scripts\exposure.py", line 54, in main
mp.exposure(level = 'MID')
File "C:\Users\Documents\my_scripts\exposure.py", line 17, in exposure
level = inspect.getargspec(d_exposure().exposure)[3][0]
当我尝试给它的默认值“DIM”,则输出具有“DIM”,即使我提出的要求是mp.exposure(水平=“MID”)。有人能帮我弄清楚我做错了什么吗?
此代码没有任何意义。如果您传递的是“level”值,请直接使用它。没有任何内省需要。您可能会混淆传递关键字参数的语法来声明默认参数值的语法吗? – Blckknght
是的,这显然是从整个代码简化,但想法是,我得到一个错误,因为它想要一个级别的默认参数,但我想能够调用不同类型的'水平'的函数 – boson
我想我的观点是:你为什么使用这行代码?如果你用'inspect.getargspec'删除整行,我怀疑它会做你想做的。如果你想'level'成为一个可选的参数,你可以使用'def exposure(self,level =“DIM”):'。 – Blckknght