Python错误"name'self'未定义"是什么意思?

Yar*_*rin 4 python

我无法弄清楚这个非常简单的片段有什么问题:

class A(object):
        def printme(self):
                print "A"

        self.printme()

a = A()
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):文件"prog.py",第1行,在A类(对象)中:文件"prog.py",第5行,在A self.printme()中NameError:名称'self'不是定义

Sve*_*ach 11

以下应该解释这个问题.也许你想试试这个?

class A(object):
    def printme(self):
        print "A"
a = A()
a.printme()
Run Code Online (Sandbox Code Playgroud)

该名称self仅在显式声明所调用参数的方法中定义self.它没有在类范围内定义.

类范围仅在类定义时执行一次."调用"类A()调用它的构造函数__init__().所以也许你真的想要这个:

class A(object):
    def __init__(self):
        self.printme()
    def printme(self):
        print "A"
a = A()
Run Code Online (Sandbox Code Playgroud)