python面向对象---用函数实现面向对象原理
类的定义:一个抽象的概念,保存一些共有的属性和特征 #对象:对象代表具体事物的特征功能,是类的实例 #面向对象程序设计 通过函数实现面向对象设计 def dog(name,type,gender): def jiao(dog1): print("你看[%s]狗再叫" % dog1["name"]) #函数的局部作用域 def sleeping(dog1): print("你看[%s]的类别" %dog1["type"]) #初始化参数 def init(name,type,gender): dog2={ "name":name, "type":type, "gender":gender, "jiao":jiao,#将函数名作为键值传入 "sleeping":sleeping } return dog2 return init(name,type,gender) d1=dog("小黄","中华田园犬","公") d1['jiao'](d1)
#类:把一类事物相同的特征和动作整合到一起就是类,类是一个抽象的概念
#对象:就是基于类创建的一个具体事物,一个具体的事物具体的存在,,也是特征和动作整合到一块
#对象是由类产生的, 实例化:由类产生对象的过程叫做实例化
#
#学校类
#特征: name addres type
#动作: 考试,招生,开除学生
class School:
#school1={"name":"oldboy","addres":"雁江","type":"私立学校"}
def __init__(self,name,addres,types):
self.name=name
self.addres=addres
self.types=types
def test(self):
print("%s学校正在考试" % self.name)
def join_student(self):
print("%s 正在招生" %self.types)
bob = School("oldboy","阳江","私立学校")
print(bob.__dict__)
bob.test()
bob.join_student()
#通过函数实现面向对象设计
def school(name,addres,type):
def init(name,addres,type):
school1={"name":name,
"addres":addres,
"type":type,
"test":test,
"join_student":join_student}
return school1
def test(school_only):
print("%s 学校在考试" %school_only['name'])
def join_student(school_only):
print("%s 招生中" %school_only['type'])
return init(name,addres,type)
s1=school("oldboy","中国",'培训学校')
print(s1,s1['name'])
s1['test'](s1)
如果我失败了,至少我尝试过,不会因为痛失机会而后悔