getattr

    10热度

    1回答

    以下示例来自Python 2.7上的REST数据库驱动程序。 在下面的__setattr__方法,如果我使用注释getattr()线,它降低了从600个RPS的对象实例化性能230 为什么getattr()比在这种情况下self.__dict__.get()这么慢得多? class Element(object): def __init__(self, client): s

    1热度

    3回答

    仅当在对象的属性中找不到该属性时,才想使用__setattr__,如__getattr__。 难道我真的要用试试 - 除了? def __setattr__(self, name, value): try: setattr(super(Clazz, self), name, value) except AttributeError: # implemen

    3热度

    3回答

    我想修改对象的私有变量 class Example(): __myTest1 = 1 __myTest2 = 1 def __init__(self): pass def modifyTest(self, name = 'Test1', value): setattr(self, '__my'+name, value); 我想上面

    0热度

    1回答

    我试图用getattr功能在我的代码使用发电机 li=[] m=[method for method in dir(li) if callable(getattr(li,method))] print getattr(li,(str(i) for i in m)) 错误: TypeError: getattr(): attribute name must be string 如果我使用

    3热度

    2回答

    我想实现一个类,其中尝试访问当前类或其任何祖先中不存在的任何属性的尝试将试图从成员访问这些属性。以下是我正在尝试做的简单版本。 class Foo: def __init__(self, value): self._value = value def __getattr__(self, name): return getattr(self._value

    1热度

    4回答

    我使用GETATTR动态访问像这样一个模型的属性(假设学生模型有一个属性名为名): students = Student.objects.all() property = 'name' for student in students: print getattr(student, property) 这工作得很好,但我不知道是否有可能访问以同样的方式相关的记录的特性,例如(假

    0热度

    1回答

    在过去的一个小时里,我一直在试图弄清楚我正在开发的支持IRC的程序中的一个错误,经过一些调试后,我发现由于某种原因,getattr工作不正常。我有以下测试代码: def privmsg(self, user, channel, msg): #Callback for when the user receives a PRVMSG. prvmsgText = textFormat

    9热度

    1回答

    我正在使用getattr根据变量调用不同的函数。 Im做这样的事情: getattr(foo, bar)() 这样的作品,像调用foo.bar)功能( 我的问题是,我有“酒吧”功能,我想用不同的称呼它参数。例如: def f1() : pass def f2(param1) : pass def f3(param1,param2) : pass 所以“

    2热度

    3回答

    在Python中,有一个功能叫做GETATTR这将是这样的: class MyObject(): def __init__(self): self.xyz = 4 obj = MyObject() getattr(obj, 'xyz') 哪里getattr的调用将返回4. 是不是也有类似的方式做这在C++(不是Visual C++)中? 是否有任何库有这种功能,我可

    2热度

    1回答

    让我先说我想做什么。我想为一个变量创建一个惰性包装,就像我在记录所有的方法调用和操作符调用时一样,并在稍后指定变量来调用它时对它们进行评估。因此,我希望能够拦截所有的方法调用和操作符调用以及特殊的方法,以便我能够处理它们。然而,__getattr__不会拦截运算符调用或__str__等,所以我想知道是否有一种通用的方法来重载所有的方法调用,或者我应该动态创建一个类并复制它的所有代码(我已经做到了,