Как я могу сохранить и имя, и фамилию в l?

Как я могу спасти Билла Гейтса и отметить Цукерберга в lis?

Когда я пишу в седонд, первый теряется

class student:
    def __init__(self,name,surname):
        self.name=name
        self.surname=surname
    def studen(self):
        lis=[]
        lis.extend([self.name,self.surname])
        return lis

a=student("Bill","gates")
a=student("Mark","zuckerberg")
print(a.studen())

результат:

['Mark', 'zuckerberg']

я хочу:

['Mark', 'zuckerberg', 'bill', 'gates']

Похоже, вы хотите, чтобы student представлял одного ученика со свойствами name и surname. Но вы также хотите список, это плохой дизайн. У вас должен быть отдельный список учеников, который содержит student экземпляров.

Mark 22.06.2019 18:15
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
41
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам, вероятно, понадобится class Student и class Students для представления набора Student:

Может быть, что-то вроде этого:

class Student:

    def __init__(self, name, surname):
        self.name = name
        self.surname = surname

    def __str__(self):
        return f'{self.name}, {self.surname}'

    def __repr__(self):
        return str(self)


class Students:

    def __init__(self, seq):
        self._students = seq[:]

    def append(self, student):
        self._students.append(student)

    def __str__(self):
        return '\n'.join(str(student) for student in self._students)


if __name__ == '__main__':

    bill = Student("Bill", "Gates")
    mark = Student("Mark", "Zuckerberg")
    students = Students([mark, bill])
    print(students)

выход:

Mark, Zuckerberg
Bill, Gates

Вы также можете создать подкласс list или какой-либо базовый класс из модуля collections; Проще говоря, вы также можете использовать простой список Python для хранения ваших экземпляров Student:

class Student:

    def __init__(self, name, surname):
        self.name = name
        self.surname = surname

    def __str__(self):
        return f'{self.name} {self.surname}'

    def __repr__(self):
        return str(self)


if __name__ == '__main__':

    bill = Student("Bill", "Gates")
    mark = Student("Mark", "Zuckerberg")
    students = [mark, bill]
    print(students)

выход:

[Mark Zuckerberg, Bill Gates]

Не может произойти в одном экземпляре? Только в а или только в б? –

koki 22.06.2019 18:23

Понятия не имею, что вы имеете в виду; не могли бы вы быть более конкретным?

Reblochon Masque 22.06.2019 18:24

Сделайте lis атрибутом экземпляра. То, как вы это делаете, переопределяет экземпляр a, поэтому предыдущее значение теряется.

Ты можешь сделать:

class student:
    def __init__(self,name,surname):
        self.name = name
        self.surname = surname
        self.lis = [self.name, self.surname]
    def studen(self):
        return self.lis

a = student("Bill", "gates")
b = student("Mark", "zuckerberg")
print(a.studen() + b.studen())
# ['Bill', 'gates', 'Mark', 'zuckerberg']

Не может произойти в одном экземпляре? Только в а или только в б?

koki 22.06.2019 18:22

@koki, я объяснил, почему использование одного экземпляра не работает в моем ответе.

Austin 22.06.2019 18:25

Другие вопросы по теме