问题标签 [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 投票
1 回答
4068 浏览

android - 如何在 android 文件上设置扩展用户属性?

有没有办法让我的 android 应用程序检索和设置文件的扩展用户属性?有没有办法java.nio.file.Files在安卓上使用?有什么方法可以使用setfattrgetfattr来自我的 dalvik 应用程序吗?我知道android使用ext4文件系统,所以我想应该是可能的。有什么建议么?

0 投票
6 回答
61137 浏览

python - 如何在python中为类动态创建类方法

如果我将一个小 Python 程序定义为

我收到回溯错误

我想弄清楚的是,如何在不实例化对象的情况下动态地将类方法设置为类?


编辑:

这个问题的答案是

返回以下输出

0 投票
4 回答
3627 浏览

python - 用于处理嵌套字典的 Python 递归 setattr()-like 函数

有很多很好的 getattr() 类函数用于解析嵌套字典结构,例如:

我想做一个并行的 setattr()。本质上,给定:

我想生成一个可以分配的函数:

或多或少,这将与以下方式相同:

产生:

我目前正在调用它setByDot()

这样做的一个问题是,如果中间的键不存在,则需要检查并制作中间键(如果它不存在)——即,对于上述情况:

所以,你首先必须做出:

另一个是下一项是列表时的键控将不同于下一项是字符串时的键控,即:

...失败,因为分配是针对空字符串而不是空字典。null dict 将是 dict 中每个非列表的正确分配,直到最后一个——它可能是一个列表或一个值。

@TokenMacGuy 在下面的评论中指出的第二个问题是,当您必须创建一个不存在的列表时,您可能必须创建大量空白值。所以,

---可能意味着算法将不得不制作一个中间体,如:

屈服

这样这是与 getter 关联的 setter ...

更重要的是,中间体应该/不/覆盖已经存在的值。

以下是我到目前为止的垃圾想法——我可以识别列表与字典和其他数据类型,并在它们不存在的地方创建它们。但是,我没有看到(a)在哪里放置递归调用,或者(b)当我遍历列表时如何“构建”深层对象,以及(c)如何区分 /probing/ 我是当我到达堆栈的末尾时,我必须从 /setting/ 构造深层对象。

这似乎很棘手,因为如果您正在制作占位符,您必须向前看以检查 /next/ 对象的类型,并且您必须向后看以构建路径。

更新

我最近也回答了这个问题,这可能是相关的或有帮助的。

0 投票
2 回答
112 浏览

python - python - 如何在实例化时动态地将函数添加到python中的实例

如果我有一个允许在实例化时使用选项参数的 python 类,我如何根据该选项参数的值为其动态设置一个函数。例如,如果我有代码

我得到回溯错误

0 投票
1 回答
2379 浏览

python - 对 Python 字典的可切换点访问?

我还没有看到字典点访问的可切换版本。

我在这里的第一次尝试不起作用:

我认为 setattr 和 setitem 之间的签名不匹配。

我的第二次通过似乎也应该有效,但以同样的方式失败:

0 投票
3 回答
69 浏览

python - 给定一个描述 object.attribute 的 Python 字符串,我如何将属性的命名空间与属性分开?

给定一个描述 object.attribute 的 Python 字符串,我如何将属性的命名空间与属性分开?

期望的例子:

注意:我知道编写自己的字符串解析器是一种选择,但我正在寻找一种更优雅的解决方案。滚动我自己的字符串解析器并不像 '.' 上的 rsplit 那样简单。因为上面列出的最后一个选项,给定的关键字可能包含命名空间分隔符。

0 投票
1 回答
269 浏览

python - 在导入的模块内设置属性时修复路径导入

为了使它更短,我有一个模块可以做到这一点:

我的模块.py

因此,如果我位于 MyModule 文件夹内并打开一个外壳,则以下工作:

但是,如果我在 MyModule 文件夹之外进行本地化并执行以下操作:

我得到:'module' object has no attribute 'VarA',我想这正在发生,因为setattr正在VarA其他地方设置,VarA无论我从哪里导入模块,都可以在 mymodule 中执行什么操作?

0 投票
2 回答
4011 浏览

python - exec 将函数添加到类中

因此,我查看了类似的问题,并找到了一些解决方案,但我无法弄清楚如何做到这一点。

我想要做的是从字符串向类添加一个方法。我可以使用该setattr()方法执行此操作,但这不会让我self在额外方法中用作属性。这是一个例子:(我为变量名道歉,当我模拟一个想法时,我总是使用 yolo)

返回这个:

如果s = 'def yolo():\n\tself.extra = "Hello"\n\tprint self.extra' 然后我得到这个结果:

这实质上意味着我不能为类动态创建方法,我知道这是不好的做法并且不符合 Python 标准,因为这些方法将无法访问类的其余部分可以访问的变量。

我很感激任何帮助。

0 投票
1 回答
2056 浏览

python - 可以在具有 __slots__ 的类中定义 __setattr__() 吗?

假设我有一个定义__slots__

我可以__setattr__()为它定义吗?

既然Foo没有__dict__,它会更新什么?

0 投票
2 回答
2433 浏览

python - maximum recursion depth while using __setattr__ in python new style object?

I have the following code which comprises of a person class and a Manager class that delegates to a person class. I am using new style object(derived from object) and running python 2.7. I geth maximum recursion depth which I am unable to understand. I know the problem happens when setattr is used (when I commented this out in manager class, I see it works fine). why this recursion occurs and how to avoid it.