cari
Rumahpembangunan bahagian belakangTutorial Python实例讲解Python中的私有属性

在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子:

复制代码 代码如下:

#! encoding=UTF-8
 
class A:
    def __init__(self):
        
        # 定义私有属性
        self.__name = "wangwu"
        
        # 普通属性定义
        self.age = 19
        
a = A()
 
# 正常输出
print a.age
 
# 提示找不到属性
print a.__name

执行输出:
复制代码 代码如下:

Traceback (most recent call last):
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 19, in
    print a.__name
AttributeError: A instance has no attribute '__name'

访问私有属性__name时居然提示找不到属性成员而不是提示权限之类的,于是当你这么写却不报错:
复制代码 代码如下:

#! encoding=UTF-8
 
class A:
    def __init__(self):
        
        # 定义私有属性
        self.__name = "wangwu"
        
        # 普通属性定义
        self.age = 19
        
 
a = A()
 
a.__name = "lisi"
print a.__name

执行结果:
1
lisi
在Python中就算继承也不能相互访问私有变量,如:
复制代码 代码如下:

#! encoding=UTF-8
 
class A:
    def __init__(self):
        
        # 定义私有属性
        self.__name = "wangwu"
        
        # 普通属性定义
        self.age = 19
        
 
class B(A):
    def sayName(self):
        print self.__name
        
 
b = B()
b.sayName()

执行结果:
复制代码 代码如下:

Traceback (most recent call last):
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 19, in
    b.sayName()
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 15, in sayName
    print self.__name
AttributeError: B instance has no attribute '_B__name'

或者父类访问子类的私有属性也不可以,如:
复制代码 代码如下:

#! encoding=UTF-8
 
class A:
    def say(self):
        print self.name
        print self.__age
        
 
class B(A):
    def __init__(self):
        self.name = "wangwu"
        self.__age = 20
 
b = B()
b.say()

执行结果:
复制代码 代码如下:

wangwu
Traceback (most recent call last):
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 15, in
    b.say()
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 6, in say
    print self.__age
AttributeError: B instance has no attribute '_A__age'
Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah sebab -sebab umum mengapa skrip python mungkin tidak dilaksanakan pada UNIX?Apakah sebab -sebab umum mengapa skrip python mungkin tidak dilaksanakan pada UNIX?Apr 28, 2025 am 12:18 AM

Sebab -sebab mengapa skrip Python tidak dapat dijalankan pada sistem Unix termasuk: 1) kebenaran yang tidak mencukupi, menggunakan chmod xyour_script.py untuk memberikan kebenaran pelaksanaan; 2) garis shebang yang tidak betul atau hilang, anda harus menggunakan #!/Usr/bin/envpython; 3) tetapan pembolehubah persekitaran yang salah, anda boleh mencetak debugging os.environ; 4) Menggunakan versi Python yang salah, anda boleh menentukan versi pada garis Shebang atau baris arahan; 5) masalah pergantungan, menggunakan persekitaran maya untuk mengasingkan ketergantungan; 6) Kesalahan sintaks, gunakan python-mpy_compileyour_script.py untuk mengesan.

Berikan contoh senario di mana menggunakan array python akan lebih sesuai daripada menggunakan senarai.Berikan contoh senario di mana menggunakan array python akan lebih sesuai daripada menggunakan senarai.Apr 28, 2025 am 12:15 AM

Menggunakan tatasusunan python lebih sesuai untuk memproses sejumlah besar data berangka daripada senarai. 1) Array menjimatkan lebih banyak memori, 2) array lebih cepat untuk beroperasi dengan nilai berangka, 3) Arrays Force Jenis Konsistensi, 4) Array bersesuaian dengan array C, tetapi tidak fleksibel dan mudah seperti senarai.

Apakah implikasi prestasi menggunakan senarai berbanding tatasusunan dalam python?Apakah implikasi prestasi menggunakan senarai berbanding tatasusunan dalam python?Apr 28, 2025 am 12:10 AM

Listsare yang lebih baik lebih baik foreflexibilityandmixdatatatypes, whilearraysares sand sumerical sand sand sand lared datasets.1) Senarai yang tidak dapat diselaraskan xibility, mixeddatatypes, dan elementChanges.2) Operasi sensori UsArray, LargedataSet, dan WhenmememoryefficyFiciency.2

Bagaimanakah Numpy mengendalikan pengurusan memori untuk tatasusunan besar?Bagaimanakah Numpy mengendalikan pengurusan memori untuk tatasusunan besar?Apr 28, 2025 am 12:07 AM

NumpyManagesMemoryforlargeArraySefficientlyusingViews, salinan, danMemory-mappedfiles.1) viewSallowSlicingWithoutCopying, secara langsungModifyingTheoriginalArray.2) copiescanbecreatedwithTheCopy () methorpreserveservervesvesverdata.3) MemoriSberServervesvesves

Yang memerlukan mengimport modul: senarai atau tatasusunan?Yang memerlukan mengimport modul: senarai atau tatasusunan?Apr 28, 2025 am 12:06 AM

Listsinpythondonotrequireimportingamodule, whilearraysfromthearraymoduledoneedanimport.1) listsarebuilt-in, serba boleh, dancanholdmixeddatatypes.2) arraysaremorememory-efficientfornumericydatabuTabeSflexible, yang tidak dapat dilupakan.

Apakah jenis data yang boleh disimpan dalam array python?Apakah jenis data yang boleh disimpan dalam array python?Apr 27, 2025 am 12:11 AM

Pythonlistscanstoreanydatatype, arraymoduleArraysstoreonetype, andnumpyarraysarefornumumericalcomputations.1) listsareversatileButlessMememory-efficient.2) arraymoduleArduleArrayRaysarememory-efficientforhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogen

Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apr 27, 2025 am 12:10 AM

KetikayyoUttemptToStoreAveFheWrongatatypeinapythonArray, anda akan menjadicounteratypeerror

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft