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

python - Python,在getattr中使用两个变量?

我正在尝试执行以下操作:

但我收到一个错误:

我在调用 getattr 之前尝试过这个,但它仍然不起作用:

我不明白为什么会这样,任何建议表示赞赏

0 投票
2 回答
627 浏览

python - Python 的 getattr 被调用了两次?

我正在使用这个简单的例子来理解 Python 的getattr函数:

为什么要bar打印两次?使用 Python 2.6.5。

0 投票
2 回答
13589 浏览

python - Python,Django,如何使用getattr(或其他方法)调用具有多个属性的对象?

在尝试让它工作一段时间并四处搜索之后,我真的很难过,所以在这里发帖......我想在我为 django 编写的类中制作一些函数尽可能通用,所以我想使用 getattr 来调用以通用方式实现以下功能:

我这样做的方式(非通用方式):

我的一个尝试以通用方式创建它,但仍然无法正常工作,它确实返回了一些东西,但它不是正确的对象类型,因此我可以从中获取数据(它是 django 的数据库调用)

0 投票
3 回答
6025 浏览

python - __getattr__ 等价于方法

未找到属性时object.__getattr__调用。是否有等效的方法来拦截未定义的方法?

0 投票
14 回答
314150 浏览

python - What is getattr() exactly and how do I use it?

I've recently read about the getattr() function. The problem is that I still can't grasp the idea of its usage. The only thing I understand about getattr() is that getattr(li, "pop") is the same as calling li.pop.

I didn't understand when the book mentioned how you use it to get a reference to a function without knowing its name until run-time. Maybe this is me being a noob in programming, in general. Could anyone shed some light on the subject? When and how do I use this exactly?

0 投票
3 回答
2065 浏览

python - Python递归地__getattribute__

我需要实现这样的行为:

看起来我必须重写 obj 的类__getattribute__,并且还要以某种方式使用 python 描述符。

更新:

我有一个 Django 项目。

obj 是 django-haystack 的 SearchResult 实例,它包含大量来自 django 模型的非规范化数据(user__name, ),出于兼容性原因user__address,我需要访问它。result.user.name

THC4k 答案的更新:

如果我有:

任何帮助都感激不尽。

0 投票
4 回答
108004 浏览

python - 了解 __getattr__ 和 __getattribute__ 之间的区别

我试图理解 和 之间的区别__getattr____getattribute__但是,我失败了。

堆栈溢出问题的答案vs之间的差异__getattr____getattribute__说:

__getattribute__在查看对象的实际属性之前调用,因此正确实现可能很棘手。您可以很容易地以无限递归结束。

我完全不知道那是什么意思。

然后它继续说:

你几乎肯定想要__getattr__

为什么?

我读到如果__getattribute__失败,__getattr__则调用。那么为什么有两种不同的方法做同样的事情呢?如果我的代码实现了新的样式类,我应该使用什么?

我正在寻找一些代码示例来解决这个问题。我已经尽我所能在谷歌上搜索,但我找到的答案并没有彻底讨论这个问题。

如果有任何文件,我准备阅读。

0 投票
1 回答
1407 浏览

python - 可以在 Python 中按名称(作为字符串)调用 XML-RPC 方法吗?

在 python 中,调用 XML-RPC 方法涉及调用代理对象上的方法:

在其他一些语言中,例如 perl,您将方法名称作为方法参数传递。

有没有办法在 Python 中按名称(作为字符串)调用 XML-RPC 方法?

0 投票
2 回答
5685 浏览

python - 为什么我不能将 __getattr__ 与 Django 模型一起使用?

我在网上看到过人们使用__getattr__Django 模型的例子,但每当我尝试时都会出错。(Django 1.2.3)

__getattr__在普通物体上使用时没有任何问题。例如:

工作得很好...

现在,当我尝试使用 Django 模型时:

并在解释器上进行测试:

以下回溯可能已损坏或无效错误消息是:('EOF in multi-line statement', (6, 0))

-------------------------------------------------- ------------------------- TypeError
Traceback(最近一次调用最后一次)

/Users/josh/project/ in ()

/Users/josh/project/lib/python2.6/site-packages/django/db/models/base.pyc in init (self, *args, **kwargs) 338 if kwargs: 339 raise TypeError("'%s ' 是此函数的无效关键字参数" % kwargs.keys()[0]) --> 340 signals.post_init.send(sender=self.class , instance=self) 341 342 def repr (self):

/Users/josh/project/lib/python2.6/site-packages/django/dispatch/dispatcher.pyc in send(self, sender, **named) 160 161 for self._live_receivers(_make_id(sender)) 中的接收者: --> 162 response = receiver(signal=self, sender=sender, **named) 163 response.append((receiver, response)) 164 返回响应

/Users/josh/project/python2.6/site-packages/photologue/models.pyc in add_methods(sender, instance, signal, *args, **kwargs) 728 """ 729 if hasattr(instance, 'add_accessor_methods') : --> 730 instance.add_accessor_methods() 731 732 # 将 add_accessor_methods 函数连接到 post_init 信号

TypeError:“int”对象不可调用

有人可以解释发生了什么吗?


编辑:我在示例中可能过于抽象,这里有一些更接近我在网站上实际使用的代码:

虽然我可以为 Post 类的每个属性创建一个属性,但这会导致大量代码重复。此外,这意味着每当我添加或编辑 Post 类的属性时,我都必须记住对 CuratedPost 类进行相同的更改,这似乎是代码腐烂的秘诀。

0 投票
3 回答
3869 浏览

python - python __getattr__ 帮助

读一本书,我遇到了这个代码......

它做了我想做的事,但我不明白课堂上的__getattr__功能Manager。我知道它代表了Person类的所有其他属性。但我不明白它的工作方式。例如为什么Person上课?因为我没有明确告诉它。人(模块不同于人(类)

非常感谢任何帮助:)