问题标签 [getattr]

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 投票
4 回答
1585 浏览

python - Django动态访问相关属性?

我正在使用 getattr 像这样动态访问模型的属性(假设 Student 模型有一个名为 name 的属性):

这很好用,但是我想知道是否可以以相同的方式访问相关记录的属性,例如(假设每个学生都有一个相关组,其属性名为 title):

有了这个,我只得到错误'学生没有属性 group.title'

有没有办法做到这一点?

任何建议表示赞赏。

谢谢

0 投票
1 回答
942 浏览

python - getattr 的问题

在过去的一个小时里,我一直在努力找出我正在处理的支持 IRC 的程序中的一个错误,经过一些调试后,我发现由于某种原因,getattr 无法正常工作。我有以下测试代码:

一切正常。

替换以下内容,代码中断(不将文本输出到 PyQT TextBrowser 实例)

这两种写 textFormatter 函数的第二个参数的方式本质上不是等价的吗?为什么会发生这种情况,以及关于如何处理这样的错误的任何想法?谢谢。

编辑:这是(简短的) textFormatter 类,以防万一:

0 投票
4 回答
7629 浏览

python - 通过 getattr 动态获取 dict 元素?

我想动态查询我想检索的类中的哪些对象。getattr似乎是我想要的,它对类中的顶级对象执行良好。但是,我还想指定子元素。

如何通过字符串获取对象的字典元素?

0 投票
2 回答
584 浏览

python - __getattr__ 定义属性的文档

我必须自定义__getattr__调用另一个函数来读取。

这很好用,除了 help(object.attr) 不起作用。这段代码是在交互式环境中使用的,所以 help() 对我们来说变得很重要。

是否有更好的设计来实现相同的功能但 help() 运行良好。

0 投票
3 回答
1845 浏览

python - __setattr__ 仅适用于在对象属性中找不到的名称?

我只想__setattr__在对象的属性中找不到该属性时使用,例如__getattr__.

我真的必须使用try-except吗?

0 投票
1 回答
3366 浏览

python - 使用 BeautifulSoup 提取键的值

我想提取这样的“档案”键的值:

我想我需要一个带有 [bla.jpg, bli.jpg, ...] 的列表,所以我尝试以下选项:

或者

或者

我总是得到一个空列表:[]

其他不成功的选择:

我得到类似的东西: dict 对象没有属性内容

我什么都得不到。

最后我看到了:BeautifulSoup 中 attrMap 和 attrs 之间的区别,以及:

什么都找不到,它必须是名称代码存档键的标记。

最后还有更多:

但 tag.attrs 什么也没找到


好的,在 jcollado 的帮助下,我可以通过这种方式获取列表:

0 投票
1 回答
1306 浏览

python - Python拦截方法调用

让我先说我想做的事。我想为变量创建一个惰性包装器,因为我记录了所有方法调用和运算符调用,并在稍后指定要调用它的变量时评估它们。

因此,我希望能够拦截所有方法调用和操作员调用以及特殊方法,以便我可以处理它们。但是,__getattr__不拦截运算符调用__str__等,所以我想知道是否有一种通用的方法来重载所有方法调用,或者我应该动态创建一个类并复制所有它的代码(我已经做过,但很丑)。

0 投票
1 回答
10612 浏览

python - 为什么 getattr() 比 self.__dict__.get() 慢这么多?

下面的示例来自 Python 2.7 上的 REST 数据库驱动程序。

在下面的__setattr__方法中,如果我使用注释掉的getattr()行,它会将对象实例化性能从 600 rps 降低到 230。

为什么getattr()比这种情况慢得多self.__dict__.get()

0 投票
3 回答
4311 浏览

python - How can I reach a private variable within the object

I would like to modify an object private variable

I tried the code above and it's seems that not possible to reach a private variable,

Is there any way to modify a private variable?

0 投票
2 回答
1229 浏览

python - python string to function:globals() vs sys.module vs dictionary

我想知道将字符串映射到函数的最佳方法是什么。到目前为止,我知道我可以使用:

  1. 全局()[func_string]
  2. sys.modules[__name__]
  3. funcs_dictionary["func_string" : func]

这是代码:

全局()[func_string]:

sys.modules[__name__]:

funcs_dictionary["func_string" : func]:

最初我担心 sys.modules[__name__] 会重新加载模块并损害性能。但是上面的代码似乎表明函数指针是相同的,所以我想我不必担心吧?

选项 1、2、3 的最佳用例是什么?