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

如何進(jìn)行實(shí)現(xiàn)Python配置?

開發(fā) 后端
Python配置主要包括:DataSet,DataTable,DataColumn,DataRow,和DataRelation。這些對(duì)象的主要特點(diǎn)說明如下。

Python配置中的一個(gè)文本區(qū)域,其中某個(gè)名字空間可以直接訪問,“直接訪問” 這里指的是使用不加修飾的名字就直接找到名字空間中的對(duì)象,可以直接學(xué)習(xí)Python不必先從C下手。

例如,所有方法名用大寫字母開頭,所有數(shù)據(jù)屬性名前用一個(gè)***的字符串開頭(或者只是一個(gè)下劃線),或方法名用動(dòng)詞而數(shù)據(jù)名用名詞。數(shù)據(jù)屬性可以被方法引用也可以被普通用戶(“客戶”)引用。換句話說,類不能用來構(gòu)造抽象數(shù)據(jù)類型。實(shí)際上。

Python中沒有任何辦法可以強(qiáng)制進(jìn)行數(shù)據(jù)隱藏——這些都是基于慣例。(另一方面,Python的實(shí)現(xiàn)是用C寫的,它可以完全隱藏實(shí)現(xiàn)細(xì)節(jié),必要時(shí)可以控制對(duì)象存取;用C寫的Python擴(kuò)展模塊也有同樣特性)。

客戶要自己小心使用數(shù)據(jù)屬性——客戶可能會(huì)因?yàn)殡S意更改類對(duì)象的數(shù)據(jù)屬性而破壞由類方法維護(hù)的類數(shù)據(jù)的一致性。注意客戶只要注意避免名字沖突可以任意為實(shí)例對(duì)象增加新數(shù)據(jù)屬性而不需影響到方法的有效性——這里,有效的命名慣例可以省去許多麻煩。

從方法內(nèi)要訪問本對(duì)象的數(shù)據(jù)屬性(或其它方法)沒有一個(gè)簡(jiǎn)寫的辦法。我認(rèn)為這事實(shí)上增加了程序的可讀性:在方法定義中不會(huì)混淆局部變量和實(shí)例變量。習(xí)慣上,方法的***自變量叫做self。這只不過是一個(gè)習(xí)慣用法:名字self在Python配置中沒有任何特殊意義。但是。

因?yàn)橛脩舳际褂么藨T例,所以違背此慣例可能使其它Python配置不容易讀你的程序,可以想象某些類瀏覽程序會(huì)依賴于此慣例)。作為類屬性的任何函數(shù)對(duì)象都為該類的實(shí)例定義一個(gè)方法。函數(shù)的定義不一定必須在類定義內(nèi)部:只要在類內(nèi)把一個(gè)函數(shù)對(duì)象賦給一個(gè)局部變量就可以了。例如:

  1. >>> class Complex:  
  2. ...     def __init__(self, realpart, imagpart):  
  3. ...         self.r = realpart 
  4. ...         self.i = imagpart 
  5. ...   
  6. >>> x = Complex(3.0,-4.5)  
  7. >>> x.r, x.i  
  8. (3.0, -4.5)  

現(xiàn)在f、g和h都是類C的屬性且指向函數(shù)對(duì)象,所以它們都是C的實(shí)例的方法——其中h與g 完全等價(jià)。注意我們應(yīng)該避免這種用法以免誤導(dǎo)讀者。方法可以用代表所屬對(duì)象的self自變量來引用本類其它的方法,如:

  1. class VirtualAttributes:  
  2.     __vdict = None 
  3.     __vdict_name = locals().keys()[0]  
  4.        
  5.     def __init__(self):  
  6.         self.__dict__[self.__vdict_name] = {}  
  7.       
  8.     def __getattr__(self, name):  
  9.         return self.__vdict[name]  
  10.       
  11.     def __setattr__(self, name, value):  
  12.         self.__vdict[name] = value 

方法可以和普通函數(shù)一樣地引用全局名字。方法的全局作用域是包含類定義的模塊。(注意類本身并不被用作全局作用域!)雖然我們很少需要在方法中使用全局?jǐn)?shù)據(jù),全局作用域還是有許多合法的用途:

例如,導(dǎo)入全局作用域的Python配置和模塊可以被方法使用。在同一模塊中定義的函數(shù)和方法也可以被方法使用。包含此方法的類一般也在此全局作用域中定義,下一節(jié)我們會(huì)看到一個(gè)方法為什么需要引用自己的類!

一段需要以某種抽象數(shù)據(jù)類型作為輸入的Python程序經(jīng)??梢越邮芤粋€(gè)類作為輸入,該類只是模仿了應(yīng)輸入的數(shù)據(jù)類型的方法。例如,如果你有一個(gè)函數(shù)是用來格式化一個(gè)文件對(duì)象中的數(shù)據(jù),就可一個(gè)定義一個(gè)具有方法read()和readline()的類,該類可以不從文件輸入而是從一個(gè)字符串緩沖區(qū)輸入,把這個(gè)類作為自變量。

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對(duì)Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢(shì)所在
  5. 如何使用Python模塊解析配置文件?
責(zé)任編輯:chenqingxiang 來源: 博客園
相關(guān)推薦

2010-03-09 18:14:55

Python sock

2010-03-25 18:52:15

Nginx負(fù)載均衡

2010-02-01 10:21:36

Python編碼轉(zhuǎn)換

2024-07-08 08:38:37

Python游戲開發(fā)

2010-02-03 13:55:51

Python 代碼

2010-09-27 10:54:53

JVM參數(shù)配置

2009-11-17 11:33:07

路由器配置

2010-02-01 14:48:43

2010-02-01 17:33:24

Python主線程

2010-02-01 18:20:17

Python 多重繼承

2010-02-02 16:47:12

Python主線程

2010-03-11 17:38:20

Python中文

2010-03-15 15:11:50

Python列表

2010-06-10 17:26:51

UML建模過程

2010-03-01 16:32:36

Python語言

2010-02-22 17:12:34

Python對(duì)象

2010-03-15 15:45:15

Python編程語言

2010-02-01 16:22:36

Python字符串操作

2010-03-01 11:06:52

Python 調(diào)試器

2011-07-14 14:58:19

網(wǎng)絡(luò)服務(wù)器配置服務(wù)器
點(diǎn)贊
收藏

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