Jython 2.1 getattr

2024-10-04 05:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为jythonv2.1中的java对象(baseClient)实现包装器/代理类。除了遇到以下语句外,一切似乎都正常工作:

if __client != None # __client is an instance of the ClientProxy class

__getattr__()中调用raise AttributeError(attr),因为self.__baseClient没有{}属性。 必须指出的是,我不能升级,因为jython是系统的一部分。有没有办法绕过这个问题?在

^{pr2}$

非常感谢!在


Tags: ofthe对象instanceclientnonean代理
1条回答
网友
1楼 · 发布于 2024-10-04 05:32:20
if __client != None:

对于针对特定实例(如None)进行测试,使用identity操作符是惯用用法:

^{pr2}$

这将避免调用比较器的问题。在

然而,__getattr__引发{}这一事实不应成为问题。比较器应该推测性地为__cmp____ne__)调用getattr,如果它得到了一个AttributeError,它应该默默地吞下它,转而回到身份比较。为什么AttributeError会在您的案例中造成问题?在

相关问题 更多 >