Python错误是什么;名称';自我';“未定义”;什么意思?
我不知道这有什么问题: 错误输出:Python错误是什么;名称';自我';“未定义”;什么意思?,python,Python,我不知道这有什么问题: 错误输出: Traceback (most recent call last): File "prog.py", line 1, in <module> class A(object): File "prog.py", line 5, in A self.printme() NameError: name 'self' is not defined Traceback(最近一次调用last):文件“prog.py”,第1行,
Traceback (most recent call last): File "prog.py", line 1, in
<module>
class A(object): File "prog.py", line 5, in A
self.printme() NameError: name 'self' is not defined
Traceback(最近一次调用last):文件“prog.py”,第1行,在
A类(对象):文件“prog.py”,第5行,在
self.printme()name错误:未定义名称“self”
下面应该解释一下这个问题。也许你会想试试这个
class A(object):
def printme(self):
print "A"
a = A()
a.printme()
名称self
仅在显式声明名为self
的参数的方法中定义。它未在类范围中定义
类范围仅在类定义时执行一次。用A()
来“调用”类,则调用它的构造函数\uuu init\uuu()
。所以也许你真的想要这个:
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()
这正是它所说的:
self
在调用self.printme()
时没有定义self
不是Python中为您神奇地定义的;它只在具有名为self
的参数的方法内工作。如果有帮助,在整个程序中尝试用其他词替换单词self
,例如foo
(因为self
作为标识符没有什么特别之处)。如果要在实例化对象时打印某些内容,请使用:
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()
如果希望函数在每次创建类实例时运行,请尝试以下操作:
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()
我知道这是可行的,但我要做的是访问类主体中的方法。self在类实例中不可调用吗?你为什么要这样做?@Yarin:你说的“可调用”是什么意思,而“在类实例中”又是什么意思?在定义时没有该类的实例——该类甚至还没有定义,因此不可能有实例。@Sven-好的,这很有意义-我的调用属于init主体。。。今天早上有点拉斯蒂。你仍然把init和self定义为一个论点。托马斯-是的,我刚刚弄明白-已经删除了评论-谢谢汉克斯-我在找什么-斯文刚刚第一个到达那里
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()