Python类中未解析的引用

时间:2018-04-18 11:37:13

标签: python oop

这是我的代码:

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.

1 个答案:

答案 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'