首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2.7面向对象的__init__方法

Python2.7面向对象的__init__方法
EN

Stack Overflow用户
提问于 2012-11-02 02:14:23
回答 1查看 188关注 0票数 0

我刚刚阅读了、Think、关于类的__init__方法的解释。但是,我试图启动我为Project Euler.net创建的素生成器函数,并继续得到错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\-------\Desktop\Primes.py", line 54, in <module>
    Primes.__main__()
TypeError: unbound method __main__() must be called with Primes instance as first argument (got nothing instead)

我把它放在一个控制台里,然后通过调用这个命令,终于让它开始工作了:

代码语言:javascript
复制
primes = Primes()
primes.primegenerator(some number)

然后它正常运行。如何让这种行为在__init__方法中工作?

以下是完整的代码:

代码语言:javascript
复制
class Primes():
    def __init__(self, primes = []):
        self.primes = primes
    def primegenerator(self,limit):
        'Generates primes to a given limit'
        primes = [3]
        i = 3 # i is the counter
        while len(primes) < limit - 1:
            for prime in primes:
                if i % prime == 0:
                    i += 2
                    break
                elif prime != primes[-1]:
                    continue
                else:
                    primes.append(i)
                    i += 2
                    break
        primes.insert(0,2)
        return primes
def main(self):
    limit = input('Enter a limit please: ')
    primes = Primes.primegenerator(limit)
    print '-------------------------' * 2
    print The answer is: %d' %primes[-1]
    print 'The sum of the primes is: %d' %sum(primes)
    print print '-------------------------' * 2   

这是否是一个很好的程序来添加一个init方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-02 07:23:47

错误在Primes.__main__()中-您需要传递一个像Primes.__main__(self)Primes.__main__(primes)这样的实例。

但是要想得到完整的答案,你必须给出完整的代码。

这不是个好主意

Primes = Primes()

在该语句之前,Primes是一个类(或者可能是一个函数),之后它是一个实例。最好说

primes = Primes()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13188348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档