【发布时间】:2017-03-17 16:21:23
【问题描述】:
我试图理解 Python 类中的 self 关键字。因此我编了一个简单的类:
class Question(object):
"""A class for answering my OO questions about python.
attributes: a_number"""
def __init__():
print "You've initialized a Question!"
def myself_add(self, new_number):
self.a_number += new_number
在类定义下方的__main__ 函数中,我正在运行代码
my_q = Question
print my_q
my_q.a_number = 12
print 'A number:',my_q.a_number
my_q.myself_add(3)
print 'A number:',my_q.a_number
我得到的结果(包括错误)是
<class '__main__.Question'>
A number: 12
Traceback (most recent call last):
File "question.py", line 21, in <module>
my_q.myself_add(3)
TypeError: unbound method myself_add() must be called with Question instance as first argument (got int instance instead)
我试图理解为什么 myself_add 方法被认为是未绑定的。这意味着什么?为什么它不知道我在 Question 类的实例上调用它?另外,为什么我的__init__ 打印没有发生?
【问题讨论】:
-
为了创建一个实例你应该写
Question() -
__init__()也需要一个self参数。 -
@PawełKordowski OMG,我不敢相信事情就这么简单。谢谢!把它扔到一个答案中,我会接受它。
标签: python python-2.7 oop self