Nano Hash - криптовалюты, майнинг, программирование

Как добавить данные в словарь, используя различные входные данные нескольких пользователей внутри класса?

У меня есть простая программа, которая принимает пользователей name и age с использованием пользовательского ввода. Как я могу хранить данные в словаре и обновлять данные, если другой пользователь вводит новое имя и возраст. Вот мой пример кода. Я не знаю, правильно ли я делаю.

class Name:
    data = {}
    num_employee = 0

    def __init__(self, name, age):
        self.name = name
        self.age = age
        Name.num_employee += 1

    @classmethod
    def user_in(cls):
        name = input('Enter name: ')
        age = int(input('Enter age: '))
        return cls(name, age)

    def show(self):
        Name.data = {'name': self.name, 'age': self.age}
        return Name.data


employ = Name.user_in()
employ2 = Name.user_in()
print(Name.num_employee)
print(employ.show())
13.10.2020

  • Ваш код выглядит так, как будто он работает. Что значит делать это правильно? stackoverflow не является сайтом для проверки кода. Ваш вопрос принадлежит codereview.stackexchange.com 13.10.2020

Ответы:


1

Каждый экземпляр класса Name будет человеком с именем и возрастом. Теперь я не понимаю, предполагаете ли вы, что у сотрудника может быть более одного имени (и именно поэтому вам нужен словарь), или вам просто нужен объект для сбора информации о каждом пользователе.

Если вы хотите сохранить input внутри класса, переместите его в конструктор, то есть метод __init__. Я бы использовал другой объект, например list, для сбора набора пользователей.

Я также добавил в класс Person два метода, позволяющих пользователю изменять возраст и имя с помощью нового ввода.

class Person:
    def __init__(self):
        self.name = input('Enter name: ')
        self.age = int(input('Enter age: '))

    def show(self):
        data = {'name': self.name, 'age': self.age}
        return data

    def change_name(self):
        self.name = input('Update name: ')

    def change_age(self):
        self.age = int(input('Update age: '))

persons = []

employ = Person()
employ2 = Person()

# add employ to the list
persons.append(employ)
persons.append(employ2)

# to show information
print(len(persons)) # len of the list is the number of employees
print(employ.show())

# to change employ1 name you can do
employ.change_name()

# to change employ2 age do
employ2.change_age()
13.10.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..