Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Python's = Operator Berbeza Mempengaruhi Senarai Bergantung pada __iadd__ dan __add__?
Bagaimana Operator = Beroperasi pada Senarai dalam Python
Operator = dalam Python mempamerkan tingkah laku yang tidak dijangka apabila digunakan pada senarai. Tingkah laku ini dikaitkan dengan perbezaan antara iadd dan add kaedah khas.
iadd vs tambah
Gelagat pada Senarai
Apabila = digunakan pada senarai dengan kaedah iadd, senarai diubah suai di tempatnya. Jika iadd tidak ditakrifkan, tambah akan digunakan, menghasilkan senarai baharu.
Contoh
Pertimbangkan perkara berikut kod:
class foo: bar = [] def __init__(self, x): self.bar += [x] class foo2: bar = [] def __init__(self, x): self.bar = self.bar + [x] f = foo(1) g = foo(2) print(f.bar) print(g.bar) f.bar += [3] print(f.bar) print(g.bar) f.bar = f.bar + [4] print(f.bar) print(g.bar) f = foo2(1) g = foo2(2) print(f.bar) print(g.bar)
Output
[1, 2] [1, 2] [1, 2, 3] [1, 2, 3] [1, 2, 3, 4] [1, 2, 3] [1] [2]
Penjelasan
Kesimpulan
Gelagat = pada senarai bergantung pada sama ada ia memanggil iadd atau add__. Pengubahsuaian di tempat berlaku dengan __iadd__, manakala __add mencipta senarai baharu.
Atas ialah kandungan terperinci Bagaimanakah Python's = Operator Berbeza Mempengaruhi Senarai Bergantung pada __iadd__ dan __add__?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!