繁体   English   中英

在使用类型创建类时如何定义__str__函数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM