Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk membuat senarai objek dalam Python
Untuk mencipta senarai objek dalam Python:
Isytiharkan pembolehubah baharu dan mulakannya ke senarai kosong.
Gunakan gelung for untuk lelaran ke atas objek julat.
Segera kelas untuk mencipta objek pada setiap lelaran.
Tambahkan setiap objek pada senarai.
class Employee(): def __init__(self, id): self.id = id list_of_objects = [] for i in range(5): list_of_objects.append(Employee(i)) print(list_of_objects) for obj in list_of_objects: print(obj.id) # ????️ 0, 1, 2, 3, 4
Kami menggunakan kelas julat() untuk mendapatkan objek julat yang boleh diulang. Kelas julat
selalunya digunakan untuk menggelung bilangan kali tertentu dalam gelung untuk.
print(list(range(5))) # ????️ [0, 1, 2, 3, 4] print(list(range(1, 6))) # ????️ [1, 2, 3, 4, 5]
Jika kita perlu bermula dari nombor tertentu, hantar 2 parameter (mula dan berhenti) ke kelas julat().
Dalam setiap lelaran, kami mencipta contoh kelas Pekerja dengan nombor semasa dan menambahkan hasilnya pada senarai.
Kaedah list.append() menambah item pada penghujung senarai.
Kelas Pekerja boleh dijadikan instantiated dengan parameter id tunggal, tetapi bergantung pada kes penggunaan anda, anda mungkin perlu menghantar lebih banyak parameter semasa mencipta objek.
Jika kita perlu menukar output fungsi print() objek dalam senarai, takrifkan kaedah __repr__() dalam kelas.
class Employee(): def __init__(self, id): self.id = id def __repr__(self): return str(self.id) list_of_objects = [] for i in range(5): list_of_objects.append(Employee(i)) # ????️ [0, 1, 2, 3, 4] print(list_of_objects)
Kami menggunakan id setiap objek sebagai output fungsi print().
Sila ambil perhatian bahawa kaedah __repr__() mesti mengembalikan rentetan.
Jika kelas kami tidak mentakrifkan semua atribut yang diperlukan dalam kaedah __init__()nya, gunakan fungsi setattr() untuk menambah atribut pada setiap objek.
class Employee(): def __init__(self, id): self.id = id def __repr__(self): return str(self.id) list_of_objects = [] for i in range(3): obj = Employee(i) setattr(obj, 'topic', 'Python') setattr(obj, 'salary', 100) list_of_objects.append(obj) # ????️ [0, 1, 2] print(list_of_objects) for obj in list_of_objects: print(getattr(obj, 'topic')) print(getattr(obj, 'salary'))
Fungsi setattr menambah atribut pada objek.
Fungsi ini mengambil 3 parameter berikut:
objek Objek untuk menambah atribut
nama Nama nama atribut
nilai Nilai atribut
Rentetan nama boleh menjadi atribut sedia ada atau baharu.
Fungsi getattr mengembalikan nilai atribut yang disediakan oleh objek.
Fungsi ini mengambil sebagai parameter objek, nama sifat dan nilai lalai jika sifat tidak wujud pada objek.
Sebagai alternatif, kita boleh menggunakan pemahaman senarai.
Untuk mencipta senarai objek dalam Python:
Gunakan pemahaman senarai untuk mengulangi objek dalam julat.
Dalam setiap lelaran, nyatakan kelas untuk mencipta objek.
Senarai baharu akan mengandungi semua objek yang baru dibuat.
class Employee(): def __init__(self, id): self.id = id def __repr__(self): return str(self.id) list_of_objects = [ Employee(i) for i in range(1, 6) ] print(list_of_objects) # ????️ [1, 2, 3, 4, 5] for obj in list_of_objects: print(obj.id) # 1, 2, 3, 4, 5
Kami menggunakan pemahaman senarai untuk mengulangi objek julat panjang 5.
Pemahaman senarai digunakan untuk melaksanakan operasi tertentu pada setiap elemen atau untuk memilih subset elemen yang memenuhi syarat.
Dalam setiap lelaran, kami membuat instantiate kelas Pekerja untuk mencipta objek dan mengembalikan hasilnya.
Senarai baharu mengandungi semua objek yang baru dibuat.
Kaedah yang manakah untuk dipilih adalah soal keutamaan peribadi.
Kefahaman senarai adalah sangat mudah dan mudah dibaca, tetapi jika anda perlu menambah sifat tambahan pada setiap objek atau proses penciptaan lebih kompleks, anda mesti menggunakan gelung for.
Menambah item pada senarai dalam kelas:
Memulakan senarai dalam kaedah __init__() kelas.
Tentukan kaedah yang menerima satu atau lebih item dan menambahkannya pada senarai.
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary self.tasks = [] # ????️ initialize list def add_task(self, task): self.tasks.append(task) return self.tasks bob = Employee('Jiyik', 100) bob.add_task('develop') bob.add_task('ship') print(bob.tasks) # ????️ ['develop', 'ship']
Kami memulakan senarai tugasan sebagai pembolehubah contoh dalam kaedah __init__() kelas.
Pembolehubah tika adalah unik untuk setiap tika yang kami buat dengan membuat seketika kelas.
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary self.tasks = [] # ????️ initialize list def add_task(self, task): self.tasks.append(task) return self.tasks alice = Employee('Fql', 1000) alice.add_task('design') alice.add_task('test') print(alice.tasks) # ????️ ['design', 'test'] bob = Employee('Jiyik', 100) bob.add_task('develop') bob.add_task('ship') print(bob.tasks) # ????️ ['develop', 'ship']
Kedua-dua kejadian mempunyai senarai tugas yang berasingan.
Kami juga boleh menggunakan pembolehubah kelas dan bukannya pembolehubah contoh.
Pembolehubah kelas dikongsi oleh semua kejadian kelas.
class Employee(): # ????️ class variable tasks = [] def __init__(self, name, salary): self.name = name self.salary = salary @classmethod def add_task(cls, task): cls.tasks.append(task) return cls.tasks Employee.add_task('develop') Employee.add_task('ship') print(Employee.tasks) # ????️ ['develop', 'ship'] alice = Employee('Fql', 1000) print(alice.tasks) # ????️ ['develop', 'ship'] bob = Employee('Jiyik', 100) print(bob.tasks) # ????️ ['develop', 'ship']
Pembolehubah tugas ialah pembolehubah kelas, jadi ia dikongsi oleh semua kejadian.
Kami menandakan kaedah add_task() sebagai kaedah kelas. Parameter pertama yang dihantar kepada kaedah kelas ialah kelas.
Kaedah list.append() menambah item pada penghujung senarai.
Walau bagaimanapun, sesuatu yang sering kita perlu lakukan ialah menambahkan berbilang item pada senarai.
Kami boleh menambahkan item objek boleh lelar pada senarai menggunakan kaedah list.extend().
class Employee(): def __init__(self, name, salary): # ????️ 实例变量(每个实例都是唯一的) self.name = name self.salary = salary self.tasks = [] # ????️ 初始化列表 def add_tasks(self, iterable_of_tasks): self.tasks.extend(iterable_of_tasks) return self.tasks bob = Employee('Jiyik', 100) bob.add_tasks(['develop', 'test', 'ship']) print(bob.tasks) # ????️ ['develop', 'test', 'ship']
Kami menggunakan kaedah list.extend() untuk menambahkan berbilang nilai pada senarai tugas.
Kaedah list.extend mengambil objek boleh lelaran (seperti senarai atau tuple) dan memanjangkan senarai dengan menambahkan semua item dalam objek boleh lelaran.
Atas ialah kandungan terperinci Bagaimana untuk membuat senarai objek dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!