【问题标题】:Instantiating a class - Python [closed]实例化一个类 - Python [关闭]
【发布时间】:2016-12-02 21:50:44
【问题描述】:

我正在尝试在 Python 中实例化一个简单的类。

class Student:
    def __init__(self, name, age, major, gpa):
        name = self.name
        age = self.age
        major = self.major
        gpa = self.gpa


def main():
    student_1 = Student('John', 31, 'History', 3.4)
    student_2 = Student('George', 31, 'English', 3.5)
    print student_1.name, student_2.name

我得到的错误是:

AttributeError: Student 实例没有属性'name'

【问题讨论】:

  • self.name = name 等等,你有倒置的变量赋值
  • 你的赋值语句被颠倒了。应该是self.name = name
  • facepalm...谢谢大家

标签: python class object attributeerror


【解决方案1】:

变化:

    name = self.name
    age = self.age
    major = self.major
    gpa = self.gpa

到:

    self.name = name
    self.age = age
    self.major = major
    self.gpa = gpa

【讨论】:

    【解决方案2】:

    您收到此错误是因为您在定义属性之前访问了它们。那是因为您的分配方式错误 - 您试图将(未定义的)属性分配给参数,而不是相反:

    def __init__(self, name, age, major, gpa):
        self.name = name
        self.age = age
        self.major = major
        self.gpa = gpa
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多