你好,当我尝试打印我的对象时,我遇到了__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
谢谢
答案 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
>>>
>>>