Atribut kelas
1. Tentukan atribut secara langsung dalam kelas
Tentukan atribut kelas Sudah tentu, cara yang paling mudah dan paling langsung ialah mentakrifkannya dalam kelas, contohnya:
class UserInfo(object): name='两点水'
2
maka namanya , iaitu untuk mentakrifkan sifat semasa membina objek.
class UserInfo(object): def __init__(self,name): self.name=name
3. Kawalan akses atribut
Di Jawa, terdapat hartanah awam (awam) dan harta persendirian (swasta), yang boleh mengawal akses kepada hartanah. Jadi adakah terdapat sebarang kawalan akses atribut dalam Python?
Secara amnya, kami akan menggunakan __private_attrs bermula dengan dua garis bawah untuk mengisytiharkan bahawa atribut tersebut adalah peribadi dan tidak boleh digunakan atau diakses terus di luar kelas. Apabila menggunakan self.__private_attrs dalam kaedah di dalam kelas.
Kenapa kita hanya boleh bercakap tentang situasi umum? Kerana sebenarnya, Python tidak menyediakan fungsi seperti atribut peribadi. Walau bagaimanapun, kawalan akses Python terhadap atribut bergantung pada kesedaran pengaturcara. Kenapa awak cakap macam tu? Lihat contoh di bawah:
Lihat gambar dengan teliti, mengapa anda mengatakan garis bawah berganda bukan sifat peribadi yang sebenar? Mari kita lihat contoh berikut dan gunakan contoh berikut untuk mengesahkan:
#!/usr/bin/env python # -*- coding: UTF-8 -*- class UserInfo(object): def __init__(self, name, age, account): self.name = name self._age = age self.__account = account def get_account(self): return self.__account if __name__ == '__main__': userInfo = UserInfo('两点水', 23, 347073565); # 打印所有属性 print(dir(userInfo)) # 打印构造函数中的属性 print(userInfo.__dict__) print(userInfo.get_account()) # 用于验证双下划线是否是真正的私有属性 print(userInfo._UserInfo__account)
Hasil output adalah seperti yang ditunjukkan di bawah: