2013-10-19 33 views
1

您好,我在嘗試打印我的對象時遇到了__str__問題。解釋器告訴我「TypeError:格式字符串沒有足夠的參數」__str__格式字符串的參數不足

這是我試圖運行的代碼!

'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

它看起來OK 。你可以添加回溯你收到的錯誤嗎? –

+0

你的類爲我工作(發佈) - ''__str __()'''''__repr __()'''請發佈創建實例的語句並使用這些方法。 – wwii

+0

嗯那麼到底什麼時候可以呢? – Matt

回答

3

[自評感動,因爲這可能是一個有用的標誌杆的問題]

如果您正在導入一個模塊是在調用

import xxx 

第二次不重新導入已更改的文件工作(Python是巧言令色,看到你已經有一個模塊加載短circuts的過程)。發生了什麼是你正在改變文件,但python從未看到這些變化。

重新加載模塊調用,如果你進口的東西

from xxx import yyy 

調用reload xxx不會影響yyy你需要做的

reload(xxx) 

而且becareful

reload(xxx) 
yyy = xxx.yyy 
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 
>>> 
>>> 
相關問題