【发布时间】:2013-12-11 16:51:33
【问题描述】:
我遇到了一个问题,我已经绞尽脑汁想了几个小时,但仍然无法理解为什么会发生,所以我发现自己转向 StackOverflow 寻求帮助......
我正在开发一个使用 IronPython 2.7.4 执行的相当大的应用程序(由多个脚本文件组成)。
我已经能够将代码简化为导致问题的部分。
原始脚本以与下面列出的相同方式定义了几个属性。
然而,这个,只有这个,会导致错误。
尝试导入脚本文件时以及将其作为入口点运行时都会发生这种情况。
这是简化的test.py 文件:
1 class Test(object):
2 def __init__(self):
3 self._P = 'Hello'
4
5 def P():
6 def fget(self):
7 return self._P
8 P = property(**P()) # ERROR
这是我尝试运行时打印出来的控制台:
$ ipy64 test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
File "test.py", line 8, in Test
SystemError: Object reference not set to an instance of an object.
(我也试过用ipy代替ipy64;没有区别。
如果有人能指出我错过了什么,我将不胜感激! :)
我正在运行 Windows 7 64 位家庭高级版。
(我在cmd中使用prompt $$在命令行中创建了$,因为目录路径很长!)
【问题讨论】:
-
您希望
P = property(**P())做什么? P 不返回任何东西,所以 P() 是 None,你不能**-unpackNone。 CPython 错误信息更有启发性:TypeError: type object argument after ** must be a mapping, not NoneType.
标签: python properties ironpython