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