2013-04-08 53 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缩进是它的一部分。