[英]How to define the __str__ function while using type to create a class?
我正在尝试实现以下情况:
class ABCD(object):
def __str__(self):
return "some string"
a=ABCD()
print a
some string
使用类型:
A=type("A",(object,),dict(__str__="some string",h=5))
a=A()
print a
但是出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
您是要传递回叫吗? __str__
将作为返回字符串的实例方法实现。
A = type("A",(object,), dict(__str__=lambda self: "some string" , h=5))
a = A()
print(a)
some string
在对象上调用print
时,将调用其__str__
方法。 如果该对象未定义,则调用该object
类的__str__
。 因此,您不应该将字符串分配给__str__
因为python会尝试将其“调用”为一个函数,并抛出TypeError
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.