class Animal(object):
def __init__(self,name,age):
self.name = name
self.age = age
def sit(self):
print(self.name + 'set')
def roll_over(self):
print(self.name + 'roll over')
如上例所示,__init__函数方法跟C++的new()一样,是用于初始化class的,其中self跟C++的this指针有些类似,用于指定自己所具有的class内部变量。__init__函数中的self参数是必须写的,并且要放在所有参数的前面。
#dog类继承自animal类
class Dog(Animal):
def __init__(self,name,age):
super(Dog,self).__init__(name,age)#用于初始化父类数据
self.name = name
self.age = age
#重写方法
def sit(self):
print(self.name + 'is wang wang')
相对C++来讲方法的重写直接简单粗暴的写相同名字即可重写。
python导入模块或者类使用import语句。相当于C++的include.
比如一个文件名叫做 code.py,里面有各种各样的类:class1 class2等
#从code.py文件导入class1
from code import class1
#从code.py文件导入class2
from code import class2
#或者
from code import class1,class2
#导入整个模块
import car
#导入模块中的每个类
from car import *
python的类也支持操作符重载
class template(object):
def __init__(self,a,b):
self.a = a
self.b = b
#操作符重载
def __add__(self,other):
return template(self.a+other.a,self.b+other.b)
python类私有化变量需要在变量前面加两个下划线,比如__private_value
protect变量只加一个下划线_protect_value
__functionname__两个下划线+函数名+两个下划线是系统自定义的函数,如:
__init__, __del__(相当于C++的析构函数) , __cmp__(self,x) 比较对象。
python内置类属性,这些是python声明类中系统为类自动添加的一些属性变量,他们是public的可以直接访问。
__dict__ : 类的属性
__doc__ : 类 的文档字符串
__name__ : 类名
__module__ : 类定义所在的模块
__bases__ : 类的所有父类构成元素