baik hati
1. Tentukan kelas
Format sintaks definisi kelas adalah seperti berikut:
class ClassName: <statement-1> . . . <statement-N>
Sebuah kelas juga terdiri daripada atribut dan kaedah Kadang-kadang apabila kita mentakrifkan kelas, kita perlu menetapkan atribut kelas, jadi ini memerlukan kelas pembina
Pembina adalah seperti berikut:
def __init__(self,[...):
Jika kelas mentakrifkan kaedah init(), operasi instantiasi kelas akan memanggil kaedah init() secara automatik.
Kemudian jika pembina sepadan dengan pemusnah, sudah tentu, apabila kelas dicipta, kita boleh menggunakan pembina untuk menetapkan sifat, kemudian apabila kelas dimusnahkan, pemusnah akan dipanggil.
Sintaks pemusnah adalah seperti berikut:
def __del__(self,[...):
Kanak-kanak yang memerhati dengan teliti akan mendapati bahawa kaedah kelas mempunyai perbezaan istimewa daripada fungsi biasa Mereka mesti mempunyai nama parameter pertama tambahan.
Jadi apa yang diwakili oleh diri sendiri?
Kita boleh melihat contoh dan mengetahui jawapan melaluinya:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- class Test: def prt(self): print(self) print(self.__class__) t = Test() t.prt()
Perhatikan hasil output:
Ia jelas daripada hasil pelaksanaan bahawa diri mewakili contoh kelas dan output adalah objek semasa. alamat, manakala self.__class__ menunjuk ke kelas.
Sudah tentu diri bukan kata kunci ular sawa, bermakna ia boleh dilaksanakan secara normal jika kita menggantikannya dengan watak lain. Cuma kita sudah biasa menggunakan diri
2. Isu sejarah dalam Python menentukan kelas
Dalam lelaran versi Python, terdapat isu sejarah tentang kelas, iaitu isu kelas gaya baharu dan kelas gaya lama. Pertama, lihat kod berikut:
#!/usr/bin/env python # -*- coding: UTF-8 -*- # 旧式类 class OldClass: pass # 新式类 class NewClass(object): pass
Anda boleh melihat bahawa cara yang berbeza untuk menentukan kelas digunakan di sini terbaik apabila kita mentakrifkan kelas Menentukan kelas gaya baharu, sudah tentu, masalah ini tidak wujud dalam Python3, kerana semua kelas dalam Python3 adalah kelas gaya baharu.
Jadi apakah perbezaan antara kelas gaya baru dan kelas gaya lama?
Run Kod berikut:
#!/usr/bin/env python # -*- coding: UTF-8 -*- # 旧式类 class OldClass: def __init__(self, account, name): self.account = account; self.name = name; # 新式类 class NewClass(object): def __init__(self, account, name): self.account = account; self.name = name; if __name__ == '__main__': old_class = OldClass(111111, 'OldClass') print(old_class) print(type(old_class)) print(dir(old_class)) print('\n') new_class=NewClass(222222,'NewClass') print(new_class) print(type(new_class)) print(dir(new_class))
observe hasil output dengan teliti dan bandingkannya, anda boleh memerhatikannya. kelas gaya lama dalam Python3 .