问题标签 [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.

0 投票
3 回答
280 浏览

python - 如何在字符串中创建其名称的属性?

使用 Python 我想在一个类中创建一个属性,但它的名称在一个字符串中。通常你会:

其中 get_、set_ 和 del_blah 已相应定义。我尝试对变量中的属性名称执行相同的操作,如下所示:

但这不起作用。第一种情况 blah 返回属性的值,在第二种情况下,它返回一个属性,即<property object at 0xbb1aa0>. 我应该如何定义它才能正常工作?

0 投票
9 回答
9193 浏览

python - Python __init__ setattr 参数?

似乎通常__init__方法与此类似:

有没有办法将参数变成一个列表(不诉诸*argsor **kwargs),然后使用setattr参数名称和参数传递来设置实例变量?并且可能对列表进行切片,例如,您至少需要将其切片,[1:]因为您不想要self.self.

(实际上我想它需要一个字典来保存名称和值)

像这样:

谢谢!

响应未知的回答,我发现这行得通:

或者

还不错。。

0 投票
1 回答
442 浏览

python - Jython 2.1 __getattr__

我正在尝试在 jython v2.1 中为 java 对象(baseClient)实现包装器/代理类。除非遇到以下语句,否则一切似乎都正常:

raise AttributeError(attr)被调用__getattr__(),因为self.__baseClient没有__ne__属性。重要的是要提到我无法升级,因为 jython 是系统的一部分。有没有办法解决这个问题?

非常感谢!

0 投票
3 回答
124 浏览

python - 覆盖的属性访问不起作用(如预期的那样)

以下模块的主要目标是为某些名称提供一种“恒定”语义。

使用时:

确实如此onetwo但属性访问令人失望:

1在这种情况下,我希望在哪里。我哪里错了?

0 投票
2 回答
833 浏览

python - 为什么 __setattr__ 的“名称”参数包含类,但 __getattr__ 不包含?

以下代码:

输出:

该文档完全没有帮助,说明“名称”是“属性的名称”,但由于某种原因,它会有所不同,具体取决于您是设置它还是获取它。

我想知道的是:

  • 我在这里做一些根本错误的事情吗?
  • 我如何x在第一种情况下而不是_MyClass__x
0 投票
4 回答
16197 浏览

python - 在定义类时在python中设置具有给定名称的类属性

我正在尝试做这样的事情:

但我似乎无法找到对类的引用以使其setattr与在类定义中分配变量一样工作。我怎样才能做到这一点?

0 投票
4 回答
62748 浏览

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

我应该将什么作为第一个参数“ object”传递给函数setattr(object, name, value),以在当前模块上设置变量?

例如:

产生与以下相同的效果:

在包含这些行的模块中(带有正确的object)。

我在模块级别动态生成多个值,并且由于我无法__getattr__在模块级别定义,这是我的后备。

0 投票
1 回答
501 浏览

python - 创建类属性而不通过 __setattr__

下面是我创建的一个类,可以轻松地将一堆数据存储为属性。他们最终被存储在字典中。我覆盖__getattr____setattr__以不同类型的单位存储和检索值。当我开始覆盖时__setattr__,我无法在第二行创建初始字典,__init__就像这样......

super(MyDataFile, self).__setattr__('_data', {})

我的问题...... 有没有更简单的方法来创建一个类级别的属性__setattr__?另外,我应该担心保留单独的字典还是应该将所有内容都存储在 中self.__dict__

0 投票
3 回答
489 浏览

google-app-engine - 是否可以在 App Engine 模型中动态命名属性?

setattr允许您动态命名 Python 类中的属性。我正在尝试使用 App Engine 模型做类似的事情:

这段代码可以编译,但是当我model.prop1.append(key)稍后调用时,我收到了这个错误:

我怀疑这是因为prop1是在模型中声明而不是self.prop1,但我并不完全理解语法的意义。

有没有人做到这一点,或者有没有人对句法差异有任何见解?

0 投票
1 回答
392 浏览

python - Python:将属性注入到由 C 库创建的对象中

我正在尝试将属性注入lxml.etree._Element,但由于该模块完全用 C 实现,因此setattr失败:

用例:我有一个函数,它通过 XPath 从 XML 文件中提取文本,并用$(ENV)相应的值替换类似的匹配项。因此,我不想每次都传递变量字典(例如{"ENV" : "replacement"},每次都传递给该函数。相反,在固定位置(我的代码中的 XML 根)拥有一个属性会更容易。我可以做一个愚蠢的解决方法,但是注入 Python 属性是最好的方法。我不能使用全局变量,因为每个 XML 文件可以有不同的变量值。

那么,有什么方法可以将某些东西注入基于 C 的类/对象中?