2013-04-08 54 views
0

我在python.I一個新手需要打印所有從1到100.When我運行這段代碼號碼時,對象.__新__()不帶任何參數,我得到這個錯誤類型錯誤:使用發電機

Traceback (most recent call last): 
File "C:\Eclipse\workspace\firstpython\src\oopsegmant.py", line 14, in <module> 
p = Prime(1) 
TypeError: object.__new__() takes no parameters 

程序是這樣的

class Prime(): 
    def _init_(self,i): 
     self.i=i 

def print_value(self):   
    while(True): 
     yield(self.i) 
     self.i+=self.i 
p = Prime(1) 
for numb in p.print_value(): 
    if(numb>100): 
     break 
    print(numb) 
+0

只是在旁邊 - 你可以這樣寫:'在itertools.islice(itertools.count(1),100)中麻木:'' – 2013-04-08 13:42:18

回答

1

_init_應與雙下劃線拼寫,__init__

所有特殊方法名稱都用雙下劃線括起來。

 

另外,print_value方法應根據class縮進是它的一部分。