getattr相关内容

如何遍历模块的函数

我在导入 foo.py 后调用了这个函数.Foo 有几个我需要调用的方法,例如foo.paint, foo.draw: import foo代码如果 foo:getattr(foo, 'paint')() 我需要使用 while 循环来调用和迭代所有函数 foo.paint、foo.draw 等.我该怎么做? 解决方案 你可以像这样使用 foo.__dict__ : for name ..
发布时间:2022-01-02 13:51:08 Python

如何使用 getattr 从模型中获取外键值

我有一个模型 Project 并且我正在使用以下指令获取它的属性 attr = getattr(project, 'id', None) project 是实例,id 是字段,None 是默认返回类型. 我的问题是:如果我想用这个获取外键怎么办? 获取客户名称 project.customer.name满足以上条件如何获取客户名称? 已经试过了 如果可调用(属性):上 ..
发布时间:2022-01-02 09:31:35 Python

Python使用getattr调用带可变参数的函数

我正在使用 getattr 根据变量调用不同的函数. 我正在做这样的事情: getattr(foo, bar) () 那行得通,调用 foo.bar() 之类的函数 我的问题是我有“bar"函数,我想用不同的参数调用它.例如: def f1() :经过def f2(param1) :经过def f3(param1,param2) :经过 所以 'bar' 可以是 f1、f2 或 ..
发布时间:2021-12-29 19:56:27 Python

如何在当前模块上调用 setattr()?

我应该将什么作为第一个参数“object"传递给函数setattr(object, name, value),以在当前模块上设置变量?> 例如: setattr(object, "SOME_CONSTANT", 42); 产生与以下相同的效果: SOME_CONSTANT = 42 在包含这些行的模块中(使用正确的object). 我在模块级别动态生成多个值,由于我无法在模块级别定 ..
发布时间:2021-12-29 13:43:15 Python

了解 __getattr__ 和 __getattribute__ 之间的区别

我正在尝试理解 __getattr__ 和 __getattribute__ 之间的区别,但是,我失败了. 堆栈溢出问题的答案__getattr__ 与 __getattribute__ 之间的区别说: __getattribute__ 在查看实际属性之前被调用对象,因此可能很棘手正确执行.你可以在无限递归很容易. 我完全不知道那是什么意思. 接着说: 你几乎肯定想要 ..
发布时间:2021-12-12 08:14:10 Python

如何在没有无限递归错误的情况下实现 __getattribute__?

我想覆盖对类中一个变量的访问,但正常返回所有其他变量.我如何使用 __getattribute__ 完成此操作? 我尝试了以下操作(这也应该说明我正在尝试做的事情),但出现递归错误: D 类(对象):def __init__(self):自测=20self.test2=21def __getattribute__(self,name):如果名称=='测试':返回 0.别的:返回 self. ..
发布时间:2021-12-09 21:05:32 Python

__getattr__ 在模块上

如何在类、模块上实现与 __getattr__ 等效的代码? 示例 当调用模块的静态定义属性中不存在的函数时,我希望在该模块中创建一个类的实例,并使用与模块的属性查找失败相同的名称调用该类的方法. A 类(对象):定义称呼(自我,指责):打印“你好",宾格# 注意这个函数是故意在模块上的,而不是上面的类def __getattr__(mod, name):返回 getattr(A() ..
发布时间:2021-11-30 15:26:15 Python

使用getattr访问方法

在创建新的类实例时,我试图在其他类中调用方法,但是无法使其正常工作.这就是我所拥有的: class DataProject(object): def __init__(self, name=none,input_file=None,datamode=None,comments=None,readnow=True): .............. ..
发布时间:2020-06-16 18:48:22 Python

您可以使用getattr来调用您范围内的函数吗?

我正在尝试执行类似的操作,但是我不知道如何调用函数bar. def foo(): def bar(baz): print('used getattr to call', baz) getattr(bar, __call__())('bar') foo() 注意,这有点不寻常.通常,您将拥有一个对象并在该对象上获得一个属性,该属性可以是一个函数.那么它很容 ..
发布时间:2020-06-16 18:48:11 Python

相当于Python getattr的C ++

在python中,有一个名为getattr的函数,如下所示: class MyObject(): def __init__(self): self.xyz = 4 obj = MyObject() getattr(obj, 'xyz') getattr的调用将返回4. 在C ++(不是Visual C ++)中是否有类似的方法? 是否有任何具有此功能 ..
发布时间:2020-06-16 18:48:07 C/C++开发

是否有像__getattr__这样的函数被类变量调用?

我想重新定义对象的get函数,以便可以在请求任何属性时进行拦截.使用 getattr 函数,它不会在请求现有变量(例如本例中的attr1)时捕获.有没有办法解决这个问题,所以我可以在请求attr1时运行一个函数? class Test(object): attr1 = 1 def __init__(self): self.attr2 = 1 def _ ..
发布时间:2020-06-16 18:48:05 Python

PHP解决Python魔术__getattr __()的方法

我想知道PHP中是否有某种方法可以复制Python属性/键访问的某些魔术. 我使用由史蒂夫·莱西(Steve Lacey)编写的Mongo ORM类,称为val = doc.foo和val = doc['foo']等效. 我想知道PHP中是否有类似的接口,该接口允许更改从其继承的类处理对象访问的方式.我查看了STL,找不到适合的衣服.设置默认值将非常有用.谢谢. 解决方案 看看 ..
发布时间:2020-06-16 18:48:03 PHP