当前位置:  开发笔记 > 编程语言 > 正文

使用getattr [python]调用实例上的方法

如何解决《使用getattr[python]调用实例上的方法》经验,为你挑选了1个好方法。

我试图编写一些代码来检查项目是否具有某些属性,并调用它们.我尝试用getattr做到这一点,但修改不会是永久性的.我做了一个"假"课来检查这个.这是我用于该类的代码:

class X:                                         
   def __init__(self):
     self.value = 90  
   def __get(self):   
     return self.value
   def __set(self,value):
     self.value = value  
   value = property(__get,__set)

x = X()
print x.value # this would output 90
getattr(x,"value=",99) # when called from an interactive python interpreter this would output 99
print x.value # this is still 90 ( how could I make this be 99 ? ) 

谢谢 !



1> dF...:

你需要做点什么

class X:                                         
   def __init__(self):
     self._value = 90  

   def _get(self):   
     return self._value

   def _set(self, value):
     self._value = value  

   value = property(_get, _set)

请注意,"internal"变量必须具有与属性(我使用过的_value)不同的名称.

然后,

setattr(x, 'value', 99)

应该管用.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有