Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法让Python类代码正常工作_Python - Fatal编程技术网

Can';无法让Python类代码正常工作

Can';无法让Python类代码正常工作,python,Python,我是Python新手。无论如何,我想做一个21个问题的游戏,但是我的代码不起作用 错误是:未定义名称“plux”。 代码如下: from random import randint class Game(object): num = randint(1, 3) def plux(x): x += 1 return x def minu(x): x -= 1 def iff(i): apple =

我是Python新手。无论如何,我想做一个21个问题的游戏,但是我的代码不起作用

错误是:
未定义名称“plux”。

代码如下:

from random import randint


class Game(object):
    num = randint(1, 3)
    def plux(x):
        x += 1
        return x
    def minu(x):
        x -= 1
    def iff(i):
        apple = 0
        num = randint(1, 3)
        if num == 1:
            x = input('Can you eat it? ').lower()
            if x == "yes" or "yeah":
                print("test num 1")
                apple = plux(apple)

        elif num == 2:
            print('test num 2')
        elif num == 3:
            print("test num 3")
a = Game()
print(a.iff())

在调用行
apple=plux(apple)
中的函数
plux
时,在函数调用前添加一个
self.
。在Python中,
self.
用作类范围内使用的对象本身的引用(
游戏
类中的任何位置)。在类的每个函数中,
self
必须是第一个参数(我不知道为什么必须这样做,我相信这是有原因的,但请仔细遵循这个约定)。当您调用
apple=plux(apple)
行中的函数
plux
时,在函数调用前面添加一个
self.
。在Python中,
self.
用作类范围内使用的对象本身的引用(
游戏
类中的任何位置)。在类的每个函数中,
self
必须是第一个参数(我不知道为什么必须这样做,我相信这是有原因的,但请仔细遵循此约定)。

类应该是这样的(缺少self):


该类应如下所示(缺少自我):


每个函数的开头都应该有一个额外的
self
参数,每个函数调用之前都应该添加
self.
。这是因为它们实际上是类的方法,而不是全局函数。@zondo使用的是u init_u()?你觉得你可以举个例子吗?从@zondo的评论来看,你的代码应该是这样的@danidee哦,非常感谢!每个函数的开头都应该有一个额外的
self
参数,每个函数调用之前都应该添加
self.
。这是因为它们实际上是类的方法,而不是全局函数。@zondo使用的是u init_u()?你觉得你可以举个例子吗?从@zondo的评论来看,你的代码应该是这样的@danidee哦,非常感谢!谢谢!:)非常有用谢谢!:)很有帮助
from random import randint

class Game(object):

        def __init__(self):
            self.num = randint(1, 3)
            self.x=0

        def plux(self):
            self.x += 1

        def minu(self):
            self.x -= 1

        def iff(self):
            apple = 0
            self.num = randint(1, 3)

            if self.num == 1:

                x = raw_input('Can you eat it? ').lower()

                if x == "yes" or "yeah":
                    print("test num 1")
                    apple = self.plux()

            elif self.num == 2:
                print('test num 2')

            elif self.num == 3:
                print("test num 3")

a = Game()
a.iff()