这是我的代码:
class robot:
def __init__(givenName,givenColor):
self.name=givenName//error
self.color=givenColor//error
def intro(self):
print("my name izz "+self.name)
r1=robot();
r1.name='tom'
r1.color='red'
r2=robot();
r2.name='blue'
r2.color='blue'
r1.intro()
r2.intro()
我在上面的注释行中收到错误。我知道这个问题在stackoverflow上有很多答案,但似乎都没有。 the function calls self.color and self.color give the error.
答案 0 :(得分:2)
__init__
的第一个参数应为self
:
def __init__(self, givenName, givenColor):
self.name = givenName
self.color = givenColor
否则,您的代码将失败,因为在该方法中无法访问self
。
您有2个选项来定义属性:
选项1
如上所述使用__init__
定义初始化。例如:
r1 = robot('tom', 'red')
选项2
不要在初始化时定义,在这种情况下,这些参数必须是可选的:
class robot:
def __init__(self, givenName='', givenColor=''):
self.name=givenName
self.color=givenColor
def intro(self):
print("my name izz "+self.name)
r1 = robot()
r1.givenName = 'tom'
r1.givenColor = 'red'