getattr相关内容
我在导入 foo.py 后调用了这个函数.Foo 有几个我需要调用的方法,例如foo.paint, foo.draw: import foo代码如果 foo:getattr(foo, 'paint')() 我需要使用 while 循环来调用和迭代所有函数 foo.paint、foo.draw 等.我该怎么做? 解决方案 你可以像这样使用 foo.__dict__ : for name
..
我有一个模型 Project 并且我正在使用以下指令获取它的属性 attr = getattr(project, 'id', None) project 是实例,id 是字段,None 是默认返回类型. 我的问题是:如果我想用这个获取外键怎么办? 获取客户名称 project.customer.name满足以上条件如何获取客户名称? 已经试过了 如果可调用(属性):上
..
我正在使用 getattr 根据变量调用不同的函数. 我正在做这样的事情: getattr(foo, bar) () 那行得通,调用 foo.bar() 之类的函数 我的问题是我有“bar"函数,我想用不同的参数调用它.例如: def f1() :经过def f2(param1) :经过def f3(param1,param2) :经过 所以 'bar' 可以是 f1、f2 或
..
我应该将什么作为第一个参数“object"传递给函数setattr(object, name, value),以在当前模块上设置变量?> 例如: setattr(object, "SOME_CONSTANT", 42); 产生与以下相同的效果: SOME_CONSTANT = 42 在包含这些行的模块中(使用正确的object). 我在模块级别动态生成多个值,由于我无法在模块级别定
..
我正在尝试理解 __getattr__ 和 __getattribute__ 之间的区别,但是,我失败了. 堆栈溢出问题的答案__getattr__ 与 __getattribute__ 之间的区别说: __getattribute__ 在查看实际属性之前被调用对象,因此可能很棘手正确执行.你可以在无限递归很容易. 我完全不知道那是什么意思. 接着说: 你几乎肯定想要
..
我希望能够做这样的事情: from dotDict import dotdictify生活 = {'bigBang':{'星星':{'行星':[]}}}dotdictify(生活)# 这将是常规方式:life['bigBang']['stars']['planets'] = {'earth': {'singleCellLife': {}}}# 但是我们怎样才能做到这一点呢?life.bigBan
..
我想覆盖对类中一个变量的访问,但正常返回所有其他变量.我如何使用 __getattribute__ 完成此操作? 我尝试了以下操作(这也应该说明我正在尝试做的事情),但出现递归错误: D 类(对象):def __init__(self):自测=20self.test2=21def __getattribute__(self,name):如果名称=='测试':返回 0.别的:返回 self.
..
如何在类、模块上实现与 __getattr__ 等效的代码? 示例 当调用模块的静态定义属性中不存在的函数时,我希望在该模块中创建一个类的实例,并使用与模块的属性查找失败相同的名称调用该类的方法. A 类(对象):定义称呼(自我,指责):打印“你好",宾格# 注意这个函数是故意在模块上的,而不是上面的类def __getattr__(mod, name):返回 getattr(A()
..
考虑以下代码示例(python 2.7): class 父类:def __init__(self, child):self.child = 孩子def __getattr__(self, attr):print("调用__getattr__:"+attr)如果 hasattr(self.child, attr):返回 getattr(self.child, attr)别的:引发 Attribut
..
我正在尝试执行以下操作: import sys; sys.path.append('/var/www/python/includes') import functionname x = 'testarg' fn = "functionname" func = getattr(fn, fn) func (x) 但出现错误: "TypeError: getattr(): attrib
..
在创建新的类实例时,我试图在其他类中调用方法,但是无法使其正常工作.这就是我所拥有的: class DataProject(object): def __init__(self, name=none,input_file=None,datamode=None,comments=None,readnow=True): ..............
..
在Python类上使用__getattr__特殊方法来处理缺少的属性或函数相当容易,但似乎不能同时处理两者. 请考虑以下示例,该示例处理未在类的其他位置明确定义的任何请求的属性... class Props: def __getattr__(self, attr): return 'some_new_value' >>> p = Props() >>> p.p
..
我有以下课程: class MyInt: def __init__(self, v): if type(v) != int: raise ValueError('value must be an int') self.v = v def __getattr__(self, attr): return g
..
以下代码: class MyClass(): def test(self): self.__x = 0 def __setattr__(self, name, value): print name def __getattr__(self, name): print name raise Attrib
..
我正在尝试执行类似的操作,但是我不知道如何调用函数bar. def foo(): def bar(baz): print('used getattr to call', baz) getattr(bar, __call__())('bar') foo() 注意,这有点不寻常.通常,您将拥有一个对象并在该对象上获得一个属性,该属性可以是一个函数.那么它很容
..
在python中,有一个名为getattr的函数,如下所示: class MyObject(): def __init__(self): self.xyz = 4 obj = MyObject() getattr(obj, 'xyz') getattr的调用将返回4. 在C ++(不是Visual C ++)中是否有类似的方法? 是否有任何具有此功能
..
我想重新定义对象的get函数,以便可以在请求任何属性时进行拦截.使用 getattr 函数,它不会在请求现有变量(例如本例中的attr1)时捕获.有没有办法解决这个问题,所以我可以在请求attr1时运行一个函数? class Test(object): attr1 = 1 def __init__(self): self.attr2 = 1 def _
..
我想知道PHP中是否有某种方法可以复制Python属性/键访问的某些魔术. 我使用由史蒂夫·莱西(Steve Lacey)编写的Mongo ORM类,称为val = doc.foo和val = doc['foo']等效. 我想知道PHP中是否有类似的接口,该接口允许更改从其继承的类处理对象访问的方式.我查看了STL,找不到适合的衣服.设置默认值将非常有用.谢谢. 解决方案 看看
..
在python中,调用XML-RPC方法涉及在代理对象上调用方法: from xmlrpclib import ServerProxy print ServerProxy('https://example.com/rpc').api.hello_there('John') 在其他语言(例如perl)中,您将方法名称作为方法参数传递. use Frontier::Client; $p
..
我在线上看到了使用__getattr__和Django模型的人们的例子,但是每当尝试尝试时,我都会出错. (Django 1.2.3) 在普通对象上使用__getattr__时,我没有任何问题.例如: class Post(object): def __getattr__(self, name): return 42 工作正常... >>> fr
..