第46天python类概念学习

面向对象:https://www.cnblogs.com/ming5218/p/8136826.html

三大编程范式:

1、面向过程编程:武当派

2、函数式编程:峨眉派

3、面向对象编程:青城派

各种流派优势不一样,没有高低之分,每个派系都能完成工作

 面向对象设计:

对象:特征+动作,例如:张三:人=高 矮 年龄等+吃饭 ,睡,打架

类:就好比人类

类和对象的关系:类是很范的,但是对象是很明确的。就好比人类,张三是对象

类是没有意义的只是描述了个共同的特征+动作

 面向对象设计:定义的都是函数

def dog(name,age,type):
#狗的动作
def jiao(dog):
print("一条狗【%s】在汪汪汪"%dog["name"])
def chi_fang(dog):
print("一条狗【%s】在吃东西"%dog["name"])

#狗的共同特征
def init(name,age,type):
dog1={
"name":name,
"age":age,
"type":type,
"jiao" :jiao,
"chi_fang":chi_fang
}
return dog1
res=init(name,age,type)
return res

d1=dog("张三",23,"泰迪")
d1["jiao"](d1)

#类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念
#对象:就是基于类而创建的一个具体的事物(具体存在的),也是特征和动作整合到一起
#背景:给学校创建个类

#学校类:
# 特征:name addr tyoe
# 动作:招聘老师 招生 开除学生
#整合动作和特征在一起

#学校的特征,这个定义死了才有一个学校特征
# school1={
# "name":"mingzhong",
# "addr":"xuedain",
# "type":"公立"
# }
# #学校的动作
# def zhaopi_laoshi(school1):
# print("%s学校招聘老师"%school1["name"])
#
# def zhaosheng():
# print("%s学校招聘生"%school1["addr"])

#虽然特征和动作有关系了,但是可能其他类型的还是可以调用者,也是出现局部作用域

#使用局部作用域
# def school(name,addr,type):
# #学校的动作
# def zhaopi_laoshi(school):
# print("%s学校招聘老师"%school["name"])
#
# def zhaosheng(school):
# print("%s学校招聘生"%school["addr"])
# #学校的特征
# school1={
# "name":name,
# "addr":addr,
# "type":type,
# "zhaopi_laoshi":zhaopi_laoshi,#特征和动作绑定一起,需要定义才能使用zhaopi_laoshi,所有放下面
# "zhaosheng":zhaosheng #特征和动作绑定一起,需要定义才能使用zhaosheng ,所有放下面
# }
# return school1
#
# d1=school("小学学校","官渡区","私立")
# print(d1)
# print(d1["name"])
# d1[ "zhaopi_laoshi"](d1)



#更美观
# def school(name,addr,type):
# def init(name,addr,type):#初始化函数:定义特征,把动作和特征绑定在一起
# #学校的特征
# school1={
# "name":name,
# "addr":addr,
# "type":type,
# "zhaopi_laoshi":zhaopi_laoshi,#特征和动作绑定一起,但是函数名定义下下面能使用了呢?return加载了一篇
# "zhaosheng":zhaosheng #特征和动作绑定一起,但是函数名定义下下面能使用了呢?return加载了一篇
# }
# return school1
# #学校的动作
# def zhaopi_laoshi(school):
# print("%s学校招聘老师"%school["name"])
#
# def zhaosheng(school):
# print("%s学校招聘生"%school["addr"])
#
# return init(name,addr,type)
#
#
# d1=school("小学学校","官渡区","私立")
# print(d1)
# print(d1["name"])
# d1[ "zhaopi_laoshi"](d1)#参数传自己,是因为自己学校要产生接下来的动作



#面向对象设计:将一类具体事物的数据和动作整合到一起,即面向对象设计
#面向对象编程:使用class进行编程,拥有class大量的方法
#什么叫实例化:有类生产对象的过程叫实例化,类实例化的结果就是一个对象,或者叫做一个实例(实例=对象)

原文地址:https://www.cnblogs.com/jianchixuexu/p/11627514.html