1 Вопрос: Ошибка «объект не имеет атрибута» с классами [дубликаты]

вопрос создан в Wed, May 8, 2019 12:00 AM
    

На этот вопрос уже есть ответ здесь:

    

Привет, у меня проблема с кодом, который я написал. Я пытаюсь создать класс и импортировать его в другой файл, но ошибка продолжает появляться. Вот мой код:

Файл1 (с классом):

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

Файл2 (класс импорта):

from Project7 import Employee as e

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

print(Employee)
print(Emp1) 

Я не уверен, что происходит, и любая информация была бы действительно полезна! Заранее спасибо!

    
- 1
  1. попробуйте удалить self.Staff = self. Я - это объект, какова польза вашего кода в этой части? Также на getInfo () и setInfo () следует перейти к self.variables
    2019-05-08 15: 48: 01Z
  2. get_info нуждается в self как в определении, так и в возврате переменных. Информация о наборе нужна в определении.
    2019-05-08 15: 54: 34Z
  3. также ваш конструктор для сотрудника передается "Employee" вместо Number и т. д.
    2019-05-08 15: 56: 20Z
1 ответ                              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)
    
0
2019-05-08 15: 49: 55Z
источник размещен Вот