sách gpt4 ăn đã đi

python - 如何检查 __str__ 是否由对象实现

In lại 作者:太空狗 更新时间:2023-10-29 20:54:16 26 4
mua khóa gpt4 giày nike

如果对象尚未实现 __chuỗi__ 方法,我想在该对象上动态实现它。

我尝试使用 hasattr(obj, '__str__') 它总是返回 true,因为它从对象类中获取它。

有没有办法确定对象是否实际实现了 __chuỗi__ ?

我知道我可以使用 inspect.getmembers(obj) 但我正在寻找更 pythonic 的方式

biên tập

class Employee(object):
def __init__(self, name, age, emp_code):
self.name = name
self.age = age
self.emp_code = emp_code

Bài kiểm tra

e = Employee("A", 23, "E1")
print hasattr(e, '__str__')
>> True

我想要一个返回 SAI 的检查,而不是选择从 sự vật 继承的方法。

câu trả lời hay nhất

因为您要检查的是它是否具有KHÔNGmặc địnhobject.__str__ của__chuỗi__ 实现。因此,您可以这样做:

Foo.__str__ is not object.__str__

要检查实例化对象,您需要检查类:

type(f).__str__ is not object.__str__

即使 Foo 没有直接实现 __chuỗi__,而是从另一个类而不是 sự vật 继承它,这也将起作用,这似乎是您想要的。

关于python - 如何检查 __str__ 是否由对象实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19628421/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress