面向对象

类:一类事物相同的特征和动作整合在一起 类是一个抽象的概念

对象:基于类创造的一个具体的事物,拥有具体自己特色的属性或者特征 对象是具体的

 1     #-------学校类--------
 2 def sch(name,type,addr):
 3     def exam(school):#类相关特征
 4         print('%s正在%s考试'%(school['name'],school['addr']))
 5     def recruit_s(school):#类相关特征
 6         print('%s  %s 正在%s招生'%(school['type'],school['name'],school['addr']))
 7     def init(name,type,addr):#初始化函数
 8         school = {
 9             'name':name,
10             'type':type,
11             'addr':addr,
12             'exam':exam,
13             'recruit_s': recruit_s,
14         }
15         return school
16     res = init(name,type,addr)#运行函数init,初始化学校属性以及动作的添加
17     return res
18 sch1 = sch('yd','council','xian')
19 print(sch1)
20 sch1['exam'](sch1)
21 sch1['recruit_s'](sch1)

学校类:
特征:名称 类型 地址
动作:考试,招生

改进版:

 1     #-------学校类--------
 2 class School:
 3     def exam(self):
 4         print('%s正在%s考试'%(self.name,self.addr))#self是指实例化的对象本身,执行函数时self把实例化的这个对象传到第一个参数的位置上,即sch1=self
 5     def recruit_s(self):
 6         print('%s  %s 正在%s招生'%(self.type,self.name,self.addr))
 7     def __init__(self,name,type,addr):#★★★系统内置函数,系统自动执行,初始化函数,默认self参数必须写
 8         self.name=name
 9         self.type=type
10         self.addr=addr
11 sch1 = School('yd','council','xian')#实例化一个对象(调用__init__运行)
12 sch2 = School('szy','council','xianyang')#实例化另一个对象
13 
14 School.exam(sch1)
15 School.recruit_s(sch1)
16 School.exam(sch2)
17 School.recruit_s(sch2)

 升级版:

#--------------中国人类--------------
class Chinese:
    skin = '黄皮肤'
    def kan_re_nao(self):#self是指实例化的对象本身,执行函数时self把实例化的这个对象传到第一个参数的位置上,如果没有self 下面对象调用方法会报错
     
print('中国人哎看热闹') def you_xiu(self): print('%s很优秀'%self) ch1=Chinese() # ch2=Chinese() Chinese.kan_re_nao() Chinese.you_xiu('g_l') # print(dir(Chinese))
★★★

# print(Chinese.__dict__)#查看类的属性字典
# print(Chinese.skin)#本质为去下面__dict__找
print(Chinese.__dict__['skin']) Chinese.__dict__['you_xiu']('g_l') Chinese.__dict__['kan_re_nao']()
print(Chinese.__name__)#显示类名print(Chinese.__doc__)#显示文档'中国人都是黄皮肤'
 print(Chinese.__base__)#显示父类,即Object类 所有类的父类
 print(Chinese.__bases__)#以元组的形式显示父类即Object类
 print(Chinese.__dict__)#查看类的属性字典print(Chinese.__module__)#显示类所在的模块
 print(Chinese.__class__)
原文地址:https://www.cnblogs.com/gl-gl/p/9197734.html