此代码一直给我错误:
TypeError:' 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]
当我尝试给它一个默认值&#39; DIM&#39;时,输出有&#39; DIM&#39;,即使我拨打的电话是mp.exposure(等级=&#39; MID&#39)。有人可以帮我弄清楚我做错了吗?
答案 0 :(得分:1)
inspect.getargspec(d_exposure().exposure)
此行为您提供以下输出:
ArgSpec(args=['self', 'level'], varargs=None, keywords=None, defaults=None)
最后一个条目是None,您尝试通过访问第0个元素来调用 getitem 方法。 当您将默认设置为&#39; DIM&#39;时,getargspec方法输出中的最后一个值是[&#39; DIM&#39;]因此它会为您提供DIM&#39; DIM&#39;作为答案。
在main方法中执行此操作时:
mp.exposure(level = 'MID')
您将MID作为参数而不是默认值。默认值只能在函数定义期间给出。 你还没有明确说明你想要做什么,所以我不能给你输入。