问题标签 [hasattr]

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 回答
98 浏览

python - Python:使用可能的 AttributeErrors 循环

我有一个数组row。我想将对象的一组属性添加actor到数组中。但是,并非所有参与者都具有每种属性。

我想运行一个循环,如果属性存在则添加该属性,如果不存在则添加'none'

我似乎无法找到一种方法在循环中使用try或进行测试hasattr。这是我得到的。当然,它不起作用,因为属性是在循环之外引用的:

解决此问题的最佳方法是什么?

0 投票
2 回答
858 浏览

python - 如果可迭代的所有成员都为真,python中是否有一个函数返回真?

我正在尝试学习在 python 中做简单事情的不同方法,同时也学习一些功能实践。我有一些用户输入的数字,我想知道它们是否真的是数字。我想出了这种经典的解决方案:

但是后来,我发现了另一个可能有潜力的“东西”:

我认为,如果集合的所有成员、可迭代或我正在寻找的任何正确概念都是“True”,则可能返回“True”的函数可能已经有些普遍,而且,第二次尝试没有当找到“False”时不会返回,而经典的会返回......但我觉得它很优雅,也许那是因为我还没有进行一般的编程。

所以我的问题是:“可能更好”的方法是什么?

0 投票
6 回答
3911 浏览

python - 检查相同条件下的多个 hasattr

即使hasattr(form, 'date')为假,此条件也验证为真。

验证倍数的正确方法是什么hasattr?

0 投票
1 回答
1227 浏览

python - 检查类变量是否已定义

我正在处理一个我有一个 python 类 Foo 的场景。Foo,除其他事项外,还进行了许多大计算,除非需要,否则我不会这样做。那么,当我为其中一个大型计算定义 getter 方法时,如何确保与计算对应的方法(此处为 bigcalculation())已经运行?

如果它运行一次,我不希望它再次运行。而且我不希望调用者必须跟踪它是否运行过一次。

现在,我使用上面的 hasattr() 函数来完成它,但我认为这是一种非常丑陋的方式。有没有更优雅的pythonic方式来做到这一点?

我能想到的另一种方法是在我的init () 函数中将我将在类中使用的所有变量定义为空列表。然后检查 big_calc_result 是否为空列表以确定 self.bigcalculation() 是否已经运行。这是更好的方法吗?

相关问题:Python 让我在类中动态定义变量。但这是不好的编程习惯吗?

编辑:回想起来,我还发现使用异常也可以是另一种处理这种情况的方法。这可能是一种更 Pythonic 的做事方式。

这个问题的答案很有用: Checking for member exist in Python

0 投票
2 回答
118 浏览

python - For loop and Storing variables

I have a long list of if statements that are checking if an object (self) contains a series of optional attributes.

As an example:

I was trying to figure out if there was a simple way of using a for loop that would use variable names from a list to check the object, and if they exist to store them locally in the method, which I think would require a dictionary in some way. Is it bad practice to try the above? Would it be more appropiate to have the more explicit list or to reduce the code with something like

0 投票
2 回答
213 浏览

python - 在 Python 中,如何通过变量名称的字符串表示来获取变量?

我正在使用 Python 2.7。

举个例子,下面的代码:

我会用什么来代替...print self.'s'。例如,如果我打电话printVariable('n'),我会用什么代替...print n

当然,self.s这是行不通的,因为首先没有属性self.s,但更重要的是,这是打印一个不同的变量,而不是self.'s'我要打印的变量,其名称由s传递给方法的字符串表示。

对于这个问题中self.sself.'s'的本质上令人困惑的性质,我感到很抱歉。s

0 投票
3 回答
4193 浏览

python - hasattr 对类名

hasattr文档说它接受一个对象和一个属性名称,并让您知道该属性是否存在于该对象上。

我发现它似乎也适用于类名(即不是实例对象)。

就像是:

我想用它来使一些测试代码更容易编写,但不想稍后被咬,以防这是实现的副作用而不是真正的意图。

请不要要求查看测试代码以查看我是否可以做其他事情,因为这不是真正的问题。

对此有任何官方的python立场吗?我认为在文档中提到的对象是在谈论实例对象。

我尝试使用谷歌搜索(并查看 StackOverflow 中的一些问题),但似乎没有找到任何东西。

0 投票
2 回答
1692 浏览

python - hasattr 不断返回 False

有人知道为什么print声明False在我期望的时候返回True吗?

0 投票
2 回答
1843 浏览

python - 如何防止 hasattr 检索属性值本身

我有一个使用__getattr__. 属性可能很昂贵,例如执行查询。现在,我正在使用一个库,它在实际获取对象之前检查我的对象是否具有该属性。

结果,一个查询被执行了两次而不是一次。当然,实际执行__getattr__以真正知道属性是否存在是有意义的。

有什么办法可以防止这种情况发生吗?

如果支持 Python,__hasattr__那么我可以简单地检查查询是否存在,而不是实际运行它。

我可以创建一个缓存,但它很重,因为查询可能有参数。当然,服务器可能会自己缓存查询并将问题最小化,但是如果查询返回大量数据,它仍然很重。

有任何想法吗?

0 投票
1 回答
350 浏览

javascript - jquery如何判断图片是否有alt属性

如果图像具有 alt 属性,我想将一个类添加到图像,将一个类添加到没有 alt 属性的图像。

我试过了,但它不工作