Извините, что это noob, это может быть глупая ошибка, но я новичок в python, поэтому, пожалуйста, помогите.Python Class, Objects & Objects
Я хочу иметь список объектов в python. Для сущности я использую словарь. EntityList.py - вот так.
from EmployeeEntity import Entity
class AddEmployee:
def AddEmployeeByUserInput(self):
EmployeeList = []
while (input('Do you want to enter an entry y/n:') == 'y'):
objEmployee = Entity.employee
objEmployee['id'] = input('Enter id: ')
objEmployee['fname'] = input('Enter first name: ')
objEmployee['lname'] = input('Enter last name: ')
objEmployee['address'] = input('Enter city: ')
objEmployee['contact'] = input('Enter contact number: ')
EmployeeList.append(objEmployee)
print(EmployeeList)
objAddEmployee = AddEmployee()
objAddEmployee.AddEmployeeByUserInput()
EmployeeEntity.py - вот так.
class Entity:
employee = {'id':'',\
'fname':'',\
'lname':'',\
'address':'',\
'contact':''}
Это то, что я вхожу &, что я получаю в качестве выхода.
Do you want to enter an entry y/n:y
Enter id: 1
Enter first name: Brijesh
Enter last name: Parekh
Enter city: Ahmedabad
Enter contact number: 7545454574
Do you want to enter an entry y/n:y
Enter id: 2
Enter first name: Kandarp
Enter last name: Mehta
Enter city: Bhavnagar
Enter contact number: 3845735375
Do you want to enter an entry y/n:n
[{ 'ID': '2', 'имя_файла': 'Kandarp', 'адрес': 'Бхавнагара', 'LNAME': 'Мехта', 'контакт': '3845735375'}, {'id': '2', 'fname': 'Kandarp', 'address': 'Bhavnagar', 'lname': 'Mehta', 'contact': '3845735375'}]
Мои последние введенные данные перезаписать все старые.
переместите строку 'EmployeeList = []' вне функции (например, перед определением функции, но внутри класса). Способ, которым вы его реализовали - этот список повторно создается при любом вызове 'AddEmployeeByUserInput()', когда вы действительно хотите сохранить * состояние * даже после того, как функция завершила свое выполнение. – alfasin
Сначала я сделал, как вы сказали. Дает тот же результат. Как переменная класса, мне просто нужно вызвать self.EmployeeList.append (objEmployee) и print (self.EmployeeList) –
И я хочу создать и распечатать список сущностей только одним и тем же методом. Состояние переменной изменяется после завершения метода, но я печатаю Entitylist в области метода, что не должно вызывать изменения состояния. Я отлаживал его и обнаружил, что цикл повторяется во второй раз, он меняет членов в objEmployee и уже добавленном члене в списке одновременно –