setattr相关内容
我有一个对象 (Person),它有多个子对象 (Pet, Residence) 作为属性.我希望能够像这样动态设置这些子对象的属性: 类人(对象):def __init__(self):self.pet = 宠物()self.residence = Residence()类宠物(对象):def __init__(self,name='Fido',species='Dog'):self.name
..
我应该将什么作为第一个参数“object"传递给函数setattr(object, name, value),以在当前模块上设置变量?> 例如: setattr(object, "SOME_CONSTANT", 42); 产生与以下相同的效果: SOME_CONSTANT = 42 在包含这些行的模块中(使用正确的object). 我在模块级别动态生成多个值,由于我无法在模块级别定
..
在下面,setattr 在第一次调用中成功,但在第二次调用中失败: AttributeError: 'method' 对象没有属性 'i' 为什么会这样,有没有办法在方法上设置属性,使其只存在于一个实例上,而不存在于类的每个实例上? c 类:def m(自我):打印(类型(厘米))setattr(cm, 'i', 0)打印(类型(self.m))setattr(self.m, 'i', 0)
..
我想覆盖我的 Python 类的 __getattribute__ 和 __setattr__ 方法.我的用例是通常的用例:我有一些我想要处理的特殊名称,并且我想要其他任何东西的默认行为.对于 __getattribute__,似乎我可以通过提高 AttributeError 来请求默认行为.但是,如何在 __setattr__ 中实现相同的目标?这是一个简单的例子,实现一个具有不可变字段“A"、
..
我有一个对象(Person),它有多个子对象(Pet、Residence)作为属性.我希望能够像这样动态设置这些子对象的属性: class Person(object):def __init__(self):self.pet = Pet()self.residence = Residence()类宠物(对象):def __init__(self,name='Fido',species='Dog'
..
我有一个如下所示的基类: 类基础:def __init__(self, prop):self.prop = 道具 我想创建一个具有以下功能的只读包装类 ReadonlyWrapper: # 使用基类的 __init__ 创建实例.readonly_instance = ReadonlyWrapper()# 我可以访问属性prop = readonly_instance.prop# 这应该会引
..
我想禁止在类的某些属性初始化后进一步赋值.例如;在 Person 实例 'p' 初始化之后,没有人可以明确地为 'ssn'(社会安全号码)属性分配任何值._setattr_ 在 _init_ 方法内部赋值时也被调用,因此它不是什么我想要.我只想限制更多的分配.我怎样才能做到这一点? class Person(object):def __init__(self, name, ssn):self.n
..
我有以下模型: class Ticket(models.Model): title = models.CharField () merged_to = models.ForeignKey(“ self”,related_name ='merger_ticket',null = True,blank = True) lackr_ticket = models.BooleanField(d
..
我有一个定义了多个方法的类. import mat class Klass(object): @mat.sell(mat.CanSet): def method1(self): return None @mat.sell(mat.CanSet): def method2(self): return 'value2' 假设
..
我正在尝试将函数从任意“基"类复制到新对象中.但是,此示例代码出现以下错误. class my_base: def print_hey(): print("HEY") def get_one(): print(1) class my_ext: def __init__(self, base): methods = [
..
我不知道这里是否有一个好的设计,但是我有一个派生自unittest.TestCase的类及其设置方式,我的代码将动态地将一堆test_*方法注入调用unittest进行运行之前的类.我为此使用setattr.这一直很好,但是现在我要删除以前注入的方法,然后注入一组新的方法.如何删除名称与模式test_*匹配的类中的所有方法? 解决方案 它称为delattr,并记录在这里.
..
说我有一个定义__slots__的类: class Foo(object): __slots__ = ['x'] def __init__(self, x=1): self.x = x # will the following work? def __setattr__(self, key, value): if key =
..
我正在尝试做这样的事情: property = 'name' value = Thing() class A: setattr(A, property, value) other_thing = 'normal attribute' def __init__(self, etc) #etc.......... 但是我似乎找不到对类的引用来使setattr起作用,就像
..
我正在尝试在Python中建立setattr()的简单测试示例,但是它无法为该成员分配新值. class Foo(object): __bar = 0 def modify_bar(self): print(self.__bar) setattr(self, "__bar", 1) print(self.__bar) 在这里
..
因此,我研究了类似的问题,并且找到了一些解决方案,但是我还不太清楚如何做到这一点. 我想做的是从字符串向类添加方法.我可以使用setattr()方法来执行此操作,但这不会让我在其他方法中将self用作属性.这是一个示例:(我为变量名表示歉意,在构思一个想法时总是使用yolo) class what: def __init__(self): s = 'def yo
..
我有一个对象(Person),该对象具有多个子对象(Pet, Residence)作为属性.我希望能够像这样动态设置这些子对象的属性: class Person(object): def __init__(self): self.pet = Pet() self.residence = Residence() class Pet(object):
..
我知道您不能在不是从object继承的对象上调用object.__setattr__,但是两者之间还有其他不同吗?如果这很重要,我正在使用Python 2.6. 解决方案 再次阅读此问题,我误解了@ paper.cut在问什么:经典类和新型类之间的区别(在Python 3+中不是问题) ).我不知道答案. 原始答案 * setattr(instance, name, value
..
我正在寻找可以解释使用方法基础知识的人,而不是使用setattr(). 我的问题是尝试使用一个类的方法/函数返回数据,然后将其放入另一方法/函数中.在这种情况下,也许一种更简单的方法会更好,但是我试图了解类是如何工作/使用的.这个问题似乎取决于setattr(),这是我试图对此做一个相当简单的尝试. 尽管问题不完全相同,但我遵循的是 Python的艰难之路,例如ex42 &mdash
..
以下代码: class MyClass(): def test(self): self.__x = 0 def __setattr__(self, name, value): print name def __getattr__(self, name): print name raise Attrib
..
我想修改对象私有变量 class Example(): __myTest1 = 1 __myTest2 = 1 def __init__(self): pass def modifyTest(self, name = 'Test1', value): setattr(self, '__my'+name, value); 我尝
..