如果对象没有实现__str__
方法,我想动态地在对象上实现它。
我尝试使用hasattr(obj, '__str__')
,但它总是返回true,因为它从对象类中找到了它。
有没有一种方法可以确定一个对象是否实际实现了__str__
?
我知道可以使用inspect.getmembers(obj)
,但我正在寻找更具Python风格的方式。
编辑
class Employee(object):
def __init__(self, name, age, emp_code):
self.name = name
self.age = age
self.emp_code = emp_code
测试
e = Employee("A", 23, "E1")
print hasattr(e, '__str__')
>> True
我想要一个检查,返回False
而不是继承自object
的方法。
obj.__str__ != object.__str__
是否足够? - Gabe__str__
方法吗?如果该方法不是来自于object
,而是继承链上的其他类呢? - reem__str__
看起来非常可疑。你是如何/为什么这样做的? - Eevee__repr__
呢?这基本上就是它的作用。 - Eevee