问题标签 [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.
python - 如何测试python类父级是否定义了方法?
我有一个可能定义了方法“method_x”的子类。我想知道“method_x”是否在类层次结构的其他地方定义。
如果我做:
我将得到一个真值,它还查看为子类定义的任何方法。我如何将其限制为仅询问该方法是否在类链的上层定义?
python - Python 的 hasattr 有时会返回不正确的结果
为什么hasattr
说实例没有foo
属性?
我期望:
python - 如何稳健地检查 Python 属性是否存在?
给定以下类(具有错误属性),那么检查该bar
属性是否存在的最佳万无一失的方法是什么?
两者都hasattr
失败getattr
并且仅dir
有效:
我能想到的最好的全方位解决方案是:
有没有更好的办法?
python - 为什么 lib.__dict__(vars) 只在运行 hasattr 或 getattr 后显示一个对象?
这是示例代码:
结果是:
我发现如果没有该行的代码
打印结果低于不包括'EVP_get_cipherbyname'
有人可以解释为什么吗?
python-3.x - 如何通过 getattr() 使用动态方法调用返回值
我有一个名为运行while循环命令提示符的类,我正在使用dir()
并getattr()
为命令shell动态创建方法列表。我想返回值,但是从动态调用的方法返回只是退出到主循环,为什么我该如何解决这个问题?
python - 函数 'hasattr()' 在 Python 中无法正常工作
函数 'hasattr()' 在 Python 中无法正常工作
我有以下代码:
当我运行它时,它给了我输出:hasn't
.
我不明白如何检查该属性是否存在。我之前
尝试删除,但它不起作用。
如何解决?u
Brazil
python - 使用 getattr 调用单独类中的函数
我可能正在尝试做一些超出这里可能性范围的事情,但我想在放弃希望之前我会先问清楚。所以这里...
我有 2 个类,A 和 B。每个类都有任意数量的函数。B 类将在 A 类的某处实例化,A 类将通过该实例化使用 B 类函数之一。B 类中的函数将需要使用 A 类的当前实例化数据来引用 A 类的一个或多个函数。
A级
B类:
我收到以下错误:
getattr(the_class, function_name)()
TypeError:未绑定的方法 foo() 必须以 classA 实例作为第一个参数来调用(反而什么都没有)
谢谢!
python - 检测 __getattribute__ 调用是否是由于 hasattr
我正在为一个班级重新实施__getattribute__
。
我想注意提供属性的任何不正确(当然意味着失败)失败(因为__getattribute__
实现结果非常复杂)。为此,如果我的代码在引发AttributeError
.
我意识到:
__getattribute__
鼓励实现尽可能简单。__getattribute__
根据调用的方式/原因,实现的行为不同被认为是错误的。- 访问属性的代码也可以
try/except
代替使用hasattr
.
TL; DR:不过,我想检测是否__getattribute__
由于hasattr
(与访问属性的“真正”尝试相比)完成了调用。
python - Python 3 - 在不调用 __getattr__ 的情况下检查类属性
TL;DR:是否有hasattr
不触发属性获取器的替代方法?
我正在为一些现有代码编写 Python 接口,我在其中获取和设置各种形状和截面类的值。由于有大量可能的组合,我目前动态创建新类,子类化一个SectionHandler
类和形状类,例如Circle
. 每个都有我想保留的特定方法。
由于此 API 将在脚本中以交互方式使用,我想确保在类实例化之后修改的任何属性都已经存在(这样就不能从拼写错误中创建新属性,并且在指定不存在的属性时会警告用户)。由于此检查需要“跳过”在子类化期间添加的所有新属性,因此我使用type
函数中的属性字典将属性预加载到新类中(下面由name
andindex
属性表示)。
正如此 SO post中所建议的,我正在hasattr
通过覆盖来检查属性是否存在于创建的类中。这在属性不存在但问题是属性确实存在时有效 - 因为似乎通过调用属性 getter 来工作,所以我从 getter 收到无关的日志记录调用,这会污染许多属性修改的日志(尤其是对于较长的消息)。__setattr__
hasattr
是否有另一种方法来检查动态生成的类中的类属性?我尝试查找self.__dict__
而不是使用hasattr
,但该字典在创建类时为空。有哪些选择?
我试图给出一个反映我正在使用的结构的最小工作示例: