0

一般来说,我对 python 和编码很陌生,如果这个问题对你们大多数人来说似乎很简单,我很抱歉。我正在尝试编写一个生成代码的小程序,基本上你有无限的猜测来猜测正确的代码。一旦我把它记下来,我打算一个接一个地做,所以你只需要猜第一个数字,直到你猜对了,然后是第二个数字,依此类推......现在我只是在玩我的到目前为止已经写了,我只是想让代码在一开始就显示出来,但它没有成功,因为它说“对象没有属性'代码'。” 我希望有人能指出我的错误。

跟踪器.py

from Number import *

class Runner(object):
    def __init__(self, start):
        self.start = start
        print Integer.__doc__
        print Integer.code

    def play(self):
        next_guess = self.start

Integer = Random_Integer()

Guess = Runner(Integer)

Guess.play()

数字.py

from random import randint

class Random_Integer(object):
"""Welcome to the guessing game! You have unlimited attempts
to guess the 3 random numbers, thats pretty much it.
"""
    def __init__(self):
        code = "%d%d%d" % (randint(1,9), randint(1,9), randint(1,9))
4

2 回答 2

3

您正在尝试打印该code方法的属性Integer.__init__。该属性不存在。

函数的局部变量不暴露;code除非您将其设为实例属性,否则您无法访问:

class Random_Integer(object):
    """Welcome to the guessing game! You have unlimited attempts
    to guess the 3 random numbers, thats pretty much it.
    """
    def __init__(self):
        self.code = "%d%d%d" % (randint(1,9), randint(1,9), randint(1,9))

然后

class Runner(object):
    def __init__(self, start):
        self.start = start
        print start.__doc__
        print start.code
于 2013-06-13T15:24:48.170 回答
0

为了使codeRandom_Integer 类的实例变量,您需要self.code使用__init__()

于 2013-06-13T15:25:10.100 回答