python中的类
Python中使用class声明类,如下:
class text:
pass
实例化类:
aaa = text()
构造函数
构造函数就是实例化类的时候会自动实现的方法,使用init(self,参数)定义:
class text:
def __init__(self):
print("我要赚钱")
aaa = text()
此处会自动显示“我要赚钱”,不需要调用其他方法。
属性
事物的属性就是类里的变量,使用 self.属性名 来定义:
class text:
def __init__(self,name,job):
self.myname=name
self.myjob=job
print("我的名字是",self.myname,",我是一个",self.myjob)
aaa = text("liuyuexiao","Mysql DBA")
在面向对象里面还有派生类和基类的说法,也就是子类和父类,衍生出的就是继承和重载的概念。继承同时又分为单继承和多继承,下面我们通过例子说明:
class father:
def __init__(self, name, job):
self.myname = name
self.myjob = job
print("我的名字是", self.myname, ",我是一个", self.myjob)
def fname(self):
print("父亲")
class son(father):
pass
aaa = son("liuyuexiao", "Mysql DBA")
bbb = son.fname(aaa)
单继承指的是son继承了father所有的方法。
class father:
def __init__(self, name, job):
self.myname = name
self.myjob = job
print("我的名字是", self.myname, ",我是一个", self.myjob)
def fname(self):
print("父亲")
class mother:
def __init__(self,name,job):
self.wife = name
self.wjob = job
print("我老婆是",self.wife,"她的职业是",self.wjob)
class son(father,mother):
pass
以上是多继承,多继承有一个问题就是构造函数只继承最前边一个的。
为了让son同时输出我的父亲和我的母亲的信息,我们使用重载来重新定义构造函数,如下:
class son(father,mother):
def __init__(self,myname,wife,myjob,wjob):
self.fathername = myname
self.mothername = wife
self.fatherjob = myjob
self.motherjob = wjob
print("yes")
aaa = son("lyx","dq","DBA","teacher")