问题标签 [setattr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在字符串中创建其名称的属性?
使用 Python 我想在一个类中创建一个属性,但它的名称在一个字符串中。通常你会:
其中 get_、set_ 和 del_blah 已相应定义。我尝试对变量中的属性名称执行相同的操作,如下所示:
但这不起作用。第一种情况 blah 返回属性的值,在第二种情况下,它返回一个属性,即<property object at 0xbb1aa0>
. 我应该如何定义它才能正常工作?
python - Python __init__ setattr 参数?
似乎通常__init__
方法与此类似:
有没有办法将参数变成一个列表(不诉诸*args
or **kwargs
),然后使用setattr
参数名称和参数传递来设置实例变量?并且可能对列表进行切片,例如,您至少需要将其切片,[1:]
因为您不想要self.self
.
(实际上我想它需要一个字典来保存名称和值)
像这样:
谢谢!
响应未知的回答,我发现这行得通:
或者
还不错。。
python - Jython 2.1 __getattr__
我正在尝试在 jython v2.1 中为 java 对象(baseClient)实现包装器/代理类。除非遇到以下语句,否则一切似乎都正常:
raise AttributeError(attr)
被调用__getattr__()
,因为self.__baseClient
没有__ne__
属性。重要的是要提到我无法升级,因为 jython 是系统的一部分。有没有办法解决这个问题?
非常感谢!
python - 覆盖的属性访问不起作用(如预期的那样)
以下模块的主要目标是为某些名称提供一种“恒定”语义。
使用时:
确实如此one
,two
但属性访问令人失望:
1
在这种情况下,我希望在哪里。我哪里错了?
python - 为什么 __setattr__ 的“名称”参数包含类,但 __getattr__ 不包含?
以下代码:
输出:
该文档完全没有帮助,说明“名称”是“属性的名称”,但由于某种原因,它会有所不同,具体取决于您是设置它还是获取它。
我想知道的是:
- 我在这里做一些根本错误的事情吗?
- 我如何
x
在第一种情况下而不是_MyClass__x
?
python - 在定义类时在python中设置具有给定名称的类属性
我正在尝试做这样的事情:
但我似乎无法找到对类的引用以使其setattr
与在类定义中分配变量一样工作。我怎样才能做到这一点?
python - 如何在当前模块上调用 setattr()?
我应该将什么作为第一个参数“ object
”传递给函数setattr(object, name, value)
,以在当前模块上设置变量?
例如:
产生与以下相同的效果:
在包含这些行的模块中(带有正确的object
)。
我在模块级别动态生成多个值,并且由于我无法__getattr__
在模块级别定义,这是我的后备。
python - 创建类属性而不通过 __setattr__
下面是我创建的一个类,可以轻松地将一堆数据存储为属性。他们最终被存储在字典中。我覆盖__getattr__
并__setattr__
以不同类型的单位存储和检索值。当我开始覆盖时__setattr__
,我无法在第二行创建初始字典,__init__
就像这样......
super(MyDataFile, self).__setattr__('_data', {})
我的问题......
有没有更简单的方法来创建一个类级别的属性__setattr__
?另外,我应该担心保留单独的字典还是应该将所有内容都存储在 中self.__dict__
?
google-app-engine - 是否可以在 App Engine 模型中动态命名属性?
setattr
允许您动态命名 Python 类中的属性。我正在尝试使用 App Engine 模型做类似的事情:
这段代码可以编译,但是当我model.prop1.append(key)
稍后调用时,我收到了这个错误:
我怀疑这是因为prop1
是在模型中声明而不是self.prop1
,但我并不完全理解语法的意义。
有没有人做到这一点,或者有没有人对句法差异有任何见解?
python - Python:将属性注入到由 C 库创建的对象中
我正在尝试将属性注入lxml.etree._Element
,但由于该模块完全用 C 实现,因此setattr
失败:
用例:我有一个函数,它通过 XPath 从 XML 文件中提取文本,并用$(ENV)
相应的值替换类似的匹配项。因此,我不想每次都传递变量字典(例如{"ENV" : "replacement"}
,每次都传递给该函数。相反,在固定位置(我的代码中的 XML 根)拥有一个属性会更容易。我可以做一个愚蠢的解决方法,但是注入 Python 属性是最好的方法。我不能使用全局变量,因为每个 XML 文件可以有不同的变量值。
那么,有什么方法可以将某些东西注入基于 C 的类/对象中?