【问题标题】:Error "object has no attribute" With classes [duplicate]错误“对象没有属性”与类[重复]
【发布时间】:2019-05-08 23:49:55
【问题描述】:

您好,我编写的代码有问题。我正在尝试创建一个类并将其导入另一个文件,但不断出现错误。这是我的代码:

File1(带类):

class Employee:

    def __init__(self, Number, employeeName, Address, Wage, Time):
        self.Staff = self
        self.employeeNum = Number
        self.Name = employeeName
        self._Address = Address
        self.Wage = Wage
        self.workTime = Time

    def getInfo():
        return(_employeeNum,__Address)

    def setInfo(newNumber):
        if newNumber > 6:
            self._employeeNum = newNumber

File2(导入类):

from Project7 import Employee as e

Emp1 = e.__init__("Employee", "6765", "John", "123 Baker Street", 13.00, 15)

print(Employee)
print(Emp1) 

我不确定发生了什么,任何信息都会很有帮助!提前致谢!

【问题讨论】:

  • 尝试删除 self.Staff = self 。 self 是对象,那部分代码的作用是什么?同样在 getInfo() 和 setInfo() 上应该去 self.variables
  • get_info 在变量的定义和返回中都需要 self 。 set info 在定义中需要它。
  • 您的员工构造函数也被传递“员工”代替数字等。

标签: python


【解决方案1】:

您不必显式调用__init__ 方法。

你可以简单地运行:

Emp1 = e("Employee", "6765", "John", "123 Baker Street", 13.00, 15)

然后,您将 Employee 类重命名为“e”:因此 print(Employee) 将引发错误,因为名称“Employee”不存在。

我还建议遵循 Python 命名类和变量的约定: 班级资本 变量小写

from Project7 import Employee

emp1 = Employee("Employee", "6765", "John", "123 Baker Street", 13.00, 15)

【讨论】:

    猜你喜欢
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2014-05-14
    相关资源
    最近更新 更多