调用类方法时的NameError

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用类方法时的NameError相关的知识,希望对你有一定的参考价值。

试图理解Python 3.7中的类和方法。我继续运行下面的代码,但继续得到这个NameError,与我在Stats类的initialize方法中建立的points变量相关联。我认为错误是识别局部/全局变量的一些问题的结果,但不能指责它。有没有人有任何想法?

class Stats:
    def __init__(self, points, rebounds, assists, steals):
        self.points = points
        self.rebounds = rebounds
        self.assists = assists
        self.steals = steals

    def tripDub(self):
        if points >= 10 and rebounds >= 10 and assists >= 10 and steals >= 10:
            return "Yes!"
        else:
            return "Nope!"

s = Stats(30, 20, 9, 5)
print("Did he earn a Triple Double? Result:", s.tripDub())
答案

在引用实例变量之前,您需要self.

class Stats:
    def __init__(self, points, rebounds, assists, steals):
        self.points = points
        self.rebounds = rebounds
        self.assists = assists
        self.steals = steals

    def tripDub(self):
        if self.points >= 10 and self.rebounds >= 10 and self.assists >= 10 and self.steals >= 10:
            return "Yes!"
        else:
            return "Nope!"


s = Stats(30, 20, 9, 5)
print("Did he earn a Triple Double? Result:", s.tripDub())
另一答案

你需要在points函数中使用self来引用reboundsassistsstealstripDub

示例:self.points

以上是关于调用类方法时的NameError的主要内容,如果未能解决你的问题,请参考以下文章

从无关类调用片段中的方法

从某个类调用片段中的方法

导入类中的模块,但是在类方法中使用模块时出现NameError

使用Swing时的Java方法 - 可以在同一个类中的另一个事件方法中调用event方法吗?

Rspec中未初始化的常量NameError

从Asynctask ONPostExecute调用片段方法