2024-10-04 05:32:20 发布
网友
我正在尝试为jythonv2.1中的java对象(baseClient)实现包装器/代理类。除了遇到以下语句外,一切似乎都正常工作:
if __client != None # __client is an instance of the ClientProxy class
在__getattr__()中调用raise AttributeError(attr),因为self.__baseClient没有{}属性。 必须指出的是,我不能升级,因为jython是系统的一部分。有没有办法绕过这个问题?在
__getattr__()
raise AttributeError(attr)
self.__baseClient
非常感谢!在
if __client != None:
对于针对特定实例(如None)进行测试,使用identity操作符是惯用用法:
这将避免调用比较器的问题。在
然而,__getattr__引发{}这一事实不应成为问题。比较器应该推测性地为__cmp__(__ne__)调用getattr,如果它得到了一个AttributeError,它应该默默地吞下它,转而回到身份比较。为什么AttributeError会在您的案例中造成问题?在
__getattr__
__cmp__
__ne__
getattr
AttributeError
对于针对特定实例(如None)进行测试,使用identity操作符是惯用用法:
^{pr2}$这将避免调用比较器的问题。在
然而,}这一事实不应成为问题。比较器应该推测性地为
__getattr__
引发{__cmp__
(__ne__
)调用getattr
,如果它得到了一个AttributeError
,它应该默默地吞下它,转而回到身份比较。为什么AttributeError
会在您的案例中造成问题?在相关问题 更多 >
编程相关推荐