Python是一種簡單到可愛的語言,之前對其有過一段時間接觸,但是只把她當做配角。只是在需要evaluation工具實現簡單評測時才用到她,而且很少會用到類,很少超過100行(雖然用C寫100行可能python只用10行就能搞定)。現在從頭再溫習一遍python,實現crawler抓些實驗資料。(順便推薦本好書《Python核心編程》)
1. 資料類型
Python 常見資料類型包括:number,string,tuple,list,dict等,都不需要顯示聲明資料類型,只要賦值自動按照值的類型判斷資料類型。
如a="holyshit!" ,在之前可以沒有任何變數a的聲明直接賦值為字串。
tuple是一種類似於const數組的資料類型,同樣a=(100,99,77)不需要聲明資料類型,其中一旦定義之後tuple中的值不可改變;
list相當於數組,a=["dk","mk","am"],不同於tuple,可以改變list的值,如:a.append("Lich");a[0]="DH";
dict是一種相對複雜的資料類型,相當於hash_map<>...dict中儲存著key-value對,是一種典型的hash類型,例如:
a={"human":["AM","BM","MK"],"UD":["Lich","DK"]};
怎麼樣,夠簡潔吧!相比於C語言要定義一個字串:
C:
char * str = (char *)malloc(100*sizeof(char));
sprintf(str,"holyshit!");
Python:
str = "holyshit!";
其他就更不必說了~除了資料類型用起來灰常方便,OO能力也是相當的強
2. 物件導向
Python的類中包含了幾個特別的屬性和函數:self,__init__() ....
self 是一種類似於C++中this指標的東西:
class WAR3:
def __init__(self,race_a,race_b,name_a,name_b):
self.race_a = race_a;
self.race_b = race_b;
self.name_a = name_a;
self.name_b = name_b;
def game_info(self):
print "This game info:%s[%s] vs. %s[%s]"%(self.name_a,self.race_a,self.name_b,self.race_b);
a = WAR3("HUM","ORC","SKY","GRUBBY");
a.game_info();
在上面這個類中可以看到在定義類成員函數的時候要在函數參數中加入self變數,其作用就是用來指向成員變數。
從上面還能看到__init__()函數的作用,建構函式。。。像吧,python會預設將參數傳遞給__init__()完成初始化。。。
回去睡覺了 TO BE CONTINUE