__str__没有足够的格式字符串参数

时间:2013-10-19 01:28:47

标签: python string class

你好,当我尝试打印我的对象时,我遇到了__str__的问题。解释器告诉我“TypeError:没有足够的格式字符串参数”

这是我正在尝试运行的代码!

    'My Practice Class' 
    class Directory:
        'A Simple Directory Class'

        def __init__(self, name, parent):
            self.name = name
            self.parent = parent

        def __str__(self):
            return 'I am %s a Child directory of %s' % (self.name, self.parent)

        def __repr__(self):
            return 'Directory(%r)' % self.name

print a
Traceback (most recent call last):
  File "<\stdin>", line 1, in <\module>  
  File "myclass.py", line 14, in \__str\__  
    def \__repr\__(self):  
TypeError: not enough arguments for format string

谢谢

2 个答案:

答案 0 :(得分:3)

[移出评论,因为这可能是一个有用的标志问题]

如果您要导入正在调用

的模块
import xxx

第二次没有重新导入更改的文件(python试图变得聪明,看到你已经加载了那个模块短路过程)。发生的事情是您正在更改文件,但是python从未看到过这些更改。

重新加载模块调用

reload(xxx)

如果您导入的内容为

,也很明显
from xxx import yyy

调用reload xxx不会影响您需要执行的yyy

reload(xxx)
yyy = xxx.yyy

答案 1 :(得分:0)

似乎对我有用:

>>> class Directory:
        'A Simple Directory Class'

        def __init__(self, name, parent):
            self.name = name
            self.parent = parent

        def __str__(self):
            return 'I am %s a Child directory of %s' % (self.name, self.parent)

        def __repr__(self):
            return 'Directory(%r)' % self.name


>>> a = Directory('Name', 'Parent')
>>> print(a)
I am Name a Child directory of Parent
>>> 
>>>