自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度剖析Python面向?qū)ο笳Z言

開發(fā) 后端
Python是一種解釋性的語言,但是這種說法是不正確的,實(shí)際上,Python在執(zhí)行時(shí),也是一種面向?qū)ο蟮恼Z言,所以說Python面向?qū)ο蟮恼Z言。

在我們的程序中,我們都是根據(jù)操作數(shù)據(jù)的函數(shù)或語句塊來設(shè)計(jì)程序的,這叫做Python面向?qū)ο蟮木幊蹋€有一種把數(shù)據(jù)和功能結(jié)合起來,用稱為對(duì)象的收斂起來的作用這種方法稱為Python面向?qū)ο?/FONT>的編程理念。

在大多數(shù)時(shí)候你可以使用過程性編程,但是有些時(shí)候當(dāng)你想要編寫大型程序或是尋求一個(gè)更加合適的解決方案的時(shí)候,你就得使用面向?qū)ο?/FONT>的編程技術(shù)。類和對(duì)象是Python面向?qū)ο?/FONT>編程的兩個(gè)主要方面。

類創(chuàng)建一個(gè)新類型,而對(duì)象這個(gè)類的 實(shí)例 。這類似于你有一個(gè)int類型的變量,這存儲(chǔ)整數(shù)的變量是int類的實(shí)例(對(duì)象)。給C/C++/Java/C#程序員的注釋注意,即便是整數(shù)也被作為對(duì)象(屬于int類)。這和C++、Java(1.5版之前)把整數(shù)純粹作為類型是不同的。

通過help(int)了解更多這個(gè)類的詳情。 C#和Java 1.5程序員會(huì)熟悉這個(gè)概念,因?yàn)樗愃婆c 封裝與解封裝 的概念。對(duì)象可以使用普通的 屬于 對(duì)象的變量存儲(chǔ)數(shù)據(jù)。屬于一個(gè)對(duì)象或類的變量被稱為域。對(duì)象也可以使用 屬于 類的函數(shù)來具有功能。#t#

這樣的函數(shù)被稱為類的方法。這些術(shù)語幫助我們把它們與孤立的函數(shù)和變量區(qū)分開來。域和方法可以合稱為類的屬性。域有兩種類型——屬于每個(gè)實(shí)例/類的對(duì)象或?qū)儆陬惐旧?。它們分別被稱為實(shí)例變量和類變量。類使用class關(guān)鍵字創(chuàng)建。類的域和方法被列在一個(gè)縮進(jìn)塊中。

類的方法與普通的函數(shù)只有一個(gè)特別的區(qū)別——它們必須有一個(gè)額外的***個(gè)參數(shù)名稱,但是在調(diào)用這個(gè)方法的時(shí)候你不為這個(gè)參數(shù)賦值,Python會(huì)提供這個(gè)值。這個(gè)特別的變量指對(duì)象本身,按照慣例它的名稱是self。

雖然你可以給這個(gè)參數(shù)任何名稱,但是 強(qiáng)烈建議 你使用self這個(gè)名稱——其他名稱都是不贊成你使用的。使用一個(gè)標(biāo)準(zhǔn)的名稱有很多優(yōu)點(diǎn)——你的程序讀者可以迅速識(shí)別它,如果使用self的話。

還有些IDE(集成開發(fā)環(huán)境)也可以幫助你。給C++/Java/C#程序員的注釋Python中的self等價(jià)于C++中的self指針和Java、C#中的this參考。你一定很奇怪Python如何給self賦值以及為何你不需要給它賦值。

舉一個(gè)例子會(huì)使此變得清晰。假如你有一個(gè)類稱為MyClass和這個(gè)類的一個(gè)實(shí)例MyObject。當(dāng)你調(diào)用這個(gè)對(duì)象的方法MyObject.method(arg1, arg2)的時(shí)候,這會(huì)由Python自動(dòng)轉(zhuǎn)為MyClass.method(MyObject, arg1, arg2)——這就是self的原理了。

這也意味著如果你有一個(gè)不需要參數(shù)的方法,你還是得給Python面向?qū)ο?/FONT>定義一個(gè)self參數(shù)。一個(gè)盡可能簡(jiǎn)單的類如下面這個(gè)例子所示:

  1. #!/usr/bin/python  
  2. # Filename: simplestclass.py  
  3.  
  4. class Person:  
  5.     pass # An empty block  
  6.  
  7. p = Person()  
  8. print p  
責(zé)任編輯:chenqingxiang 來源: 博客園
相關(guān)推薦

2010-03-01 17:40:29

Python面向?qū)ο笳Z

2010-03-01 18:33:30

2010-02-26 10:38:29

Python語言

2010-03-01 17:47:53

Python語言

2010-07-13 13:06:41

Perl面向?qū)ο?/a>

2010-02-24 14:04:32

Python腳本語言

2009-11-02 16:22:16

VB.NET面向?qū)ο?/a>

2010-01-15 10:32:21

C++語言

2024-04-02 07:32:58

Go語言接口

2022-10-21 09:01:41

StudentC++類型

2010-02-01 13:34:59

Python 腳本

2010-02-02 15:25:35

Python語法

2010-02-03 16:56:24

Python包

2010-01-26 14:46:42

C++語言

2010-07-20 09:33:14

Perl方法

2012-02-17 10:50:10

Java

2010-03-01 14:50:06

Python 工具

2011-06-02 09:47:11

C語言重構(gòu)

2009-07-14 16:51:50

Jython中的對(duì)象

2010-02-03 09:35:20

Python函數(shù)編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)