Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
Python“;名称错误:全局名称”;名称检查“;未定义;_Python - Fatal编程技术网

Python“;名称错误:全局名称”;名称检查“;未定义;

Python“;名称错误:全局名称”;名称检查“;未定义;,python,Python,我是python新手,一直在练习类和方法。当我运行包含下面代码的脚本时,我得到一个错误“NameError:Global name”nameCheck“未定义”。我如何修复它?提前谢谢 class game(object): def play(): name = input("What's your name, my friend? ") check = nameCheck(name) if check == 1:

我是python新手,一直在练习类和方法。当我运行包含下面代码的脚本时,我得到一个错误“NameError:Global name”nameCheck“未定义”。我如何修复它?提前谢谢

class game(object):
    def play(): 
         name = input("What's your name, my friend? ")
         check = nameCheck(name)

         if check == 1:
             print ("Hello %r " %(name))
         else:
             print ("Sorry, I can't print your name because you don't have one!")


    def nameCheck(name):
         if name == "":
             print("I can't believe you have no name!")
             return 0

         else:
             print("%s is a nice name!" %name)
             return 1
game.play()

Python“NameError:未定义全局名称“nameCheck”。

在类中,Python函数称为方法,使用方式如下:

class game(object):

    def play(self):
        self.nameCheck(name)

    def nameCheck(self):
        pass

self
包含类的对象。

在类中,Python函数称为方法,使用方式如下:

class game(object):

    def play(self):
        self.nameCheck(name)

    def nameCheck(self):
        pass

self
包含类的对象。

因为方法在类中,所以需要为self属性赋值:

这样做:

class game(object):
    def play(self): 
         name = input("What's your name, my friend? ")
         check = self.nameCheck(name)

         if check == 1:
             print ("Hello %r " %(name))
         else:
             print ("Sorry, I can't print your name because you don't have one!")


    def nameCheck(self, name):
         if name == "":
             print("I can't believe you have no name!")
             return 0

         else:
             print("%s is a nice name!" %name)
             return 1
game = Game()
game.play()
self
是实例的占位符,因此您必须通过执行此操作创建对象的实例
game=game()
,然后您可以为该实例调用任何方法

现在,您可以从类中的任何位置调用该方法,如果您给了变量self属性,那么它们也可以在类中的任何位置访问


有关

的详细信息,因为这些方法位于一个类中,您需要为其提供self属性:

这样做:

class game(object):
    def play(self): 
         name = input("What's your name, my friend? ")
         check = self.nameCheck(name)

         if check == 1:
             print ("Hello %r " %(name))
         else:
             print ("Sorry, I can't print your name because you don't have one!")


    def nameCheck(self, name):
         if name == "":
             print("I can't believe you have no name!")
             return 0

         else:
             print("%s is a nice name!" %name)
             return 1
game = Game()
game.play()
self
是实例的占位符,因此您必须通过执行此操作创建对象的实例
game=game()
,然后您可以为该实例调用任何方法

现在,您可以从类中的任何位置调用该方法,如果您给了变量self属性,那么它们也可以在类中的任何位置访问


更多关于

的信息,我知道您正在练习,但在Python中,您通常不会为此编写类,除非您希望在类中实际存储有关游戏的一些状态。我知道您正在练习,但在Python中,您通常不会为此编写类,除非你真的想在类中存储一些关于游戏的状态。谢谢你的洞察力,@Noctua!谢谢你的洞察力,@Noctua!这是正确的!我现在可以轻松地使用类和方法。非常感谢你@Christina Careaga!没问题!这需要一些时间来适应,但它是非常有用的!这是正确的!我现在可以轻松地使用类和方法。非常感谢你@Christina Careaga!没问题!这需要一些时间来适应,但它是非常有用的!