Questions tagged «getattr»


14
到底什么是getattr(),我该如何使用它?
我最近阅读了有关该getattr()功能的信息。问题是我仍然无法理解其用法。据我所知的唯一的事情getattr()是getattr(li, "pop")相同调用li.pop。 当书中提到您是如何使用它来获得对函数的引用时,直到运行时才知道它的名称,我不明白。总的来说,也许这是我在编程方面的菜鸟。有人可以阐明这个话题吗?我什么时候以及如何使用它?
295 python  getattr 

4
了解__getattr__和__getattribute__之间的区别
我试图理解上的差异之间__getattr__和__getattribute__,但是,我在它失败。 堆栈溢出问题的答案与vs 之间的区别是__getattr____getattribute__: __getattribute__在查看对象的实际属性之前调用,因此很难正确实现。您可以非常轻松地进行无限递归。 我完全不知道那是什么意思。 然后继续说: 您几乎可以肯定想要__getattr__。 为什么? 我读到,如果__getattribute__失败,__getattr__则称为。那么,为什么有两种不同的方法做同样的事情呢?如果我的代码实现了新样式类,我应该使用什么? 我正在寻找一些代码示例来清除此问题。我已尽我所能搜索Google,但是我发现的答案并未彻底讨论该问题。 如果有任何文档,我准备阅读。


4
如何在当前模块上调用setattr()?
如何将第一个参数“ object”传递给函数setattr(object, name, value),以在当前模块上设置变量? 例如: setattr(object, "SOME_CONSTANT", 42); 具有与以下相同的效果: SOME_CONSTANT = 42 在包含这些行的模块中(带有正确的object)。 我在模块级别动态生成几个值,由于无法__getattr__在模块级别定义,所以这是我的后备。

8
__getattr__在模块上
如何实现等效的 __getattr__在类,模块上于a? 例 当调用模块的静态定义的属性中不存在的函数时,我希望在该模块中创建一个类的实例,并使用与该模块上的属性查找失败相同的名称调用该方法。 class A(object): def salutation(self, accusative): print "hello", accusative # note this function is intentionally on the module, and not the class above def __getattr__(mod, name): return getattr(A(), name) if __name__ == "__main__": # i hope here to have my __getattr__ function above invoked, since # salutation …

6
如何实现__getattribute__而没有无限递归错误?
我想覆盖对类中一个变量的访问,但通常返回所有其他变量。我该怎么做__getattribute__呢? 我尝试了以下操作(它也应说明我要执行的操作),但是出现了递归错误: class D(object): def __init__(self): self.test=20 self.test2=21 def __getattribute__(self,name): if name=='test': return 0. else: return self.__dict__[name] >>> print D().test 0.0 >>> print D().test2 ... RuntimeError: maximum recursion depth exceeded in cmp
100 python  class  oop  recursion  getattr 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.