2018-07-03-Python全栈开发day24-面向对象设计
Posted 叶海宾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-07-03-Python全栈开发day24-面向对象设计相关的知识,希望对你有一定的参考价值。
面向对象:
根据现实中存在的东西,模拟出其特征,用来描述特定对象。
1.用函数来完成面向对象
1 def school(name,addr):#学校具有名称和地址 2 def dict_(name,addr): 3 dict_={ 4 ‘name‘:name, 5 ‘addr‘:addr, 6 ‘kao_shi‘:kao_shi,#当选取对应的key值时,运行这个函数 7 ‘zhao_sheng‘:zhao_sheng 8 } 9 return dict_ 10 def kao_shi(): 11 print(‘now is kaoshi‘) 12 def zhao_sheng(): 13 print(‘now is zhaosheng‘) 14 return dict_(name,addr) 15 #运行 16 17 p1=school(‘yehiabin‘,‘shandong‘) 18 p2=p1[‘kao_shi‘]()#从中选取函数进行运行 19 #类的各种属性,其实也是在这个字典之中的,调用的时候,是取对应的key值
这是用函数来完成面向对象设计,用school来模拟一个学校的特性,在特征内定义它的数据属性和函数属性,然后可以进行调用,给school传值的时候,也就是一个生成实例的过程
2.类与实例
在python中,用class来定义类,类具有数据属性和函数属性,为了节省内存,实例只具有数据属性,在需要函数属性的时候向类中进行调取。
2.1 属性的增删改查
2.1.1 查看
class China:#声明类的时候,一般以大写开头 def __init__(self,age): self.age=age#给self赋予了一个age方法,值为输入的age,,p.age=age name=‘yehaibin‘#数据属性#进行增删改查 def qiong(self): print(‘zhengzaitutan‘,self.age) #查看 print(China.name)
2.1.2 修改
class China:#声明类的时候,一般以大写开头 def __init__(self,age): self.age=age#给self赋予了一个age方法,值为输入的age,,p.age=age name=‘yehaibin‘#数据属性#进行增删改查 def qiong(self): print(‘zhengzaitutan‘,self.age) China.name=‘heiheihie‘
2.1.3 删除
class China:#声明类的时候,一般以大写开头 def __init__(self,age): self.age=age#给self赋予了一个age方法,值为输入的age,,p.age=age name=‘yehaibin‘#数据属性#进行增删改查 def qiong(self): print(‘zhengzaitutan‘,self.age) del China.name
2.1.4 增加
class China:#声明类的时候,一般以大写开头 def __init__(self,age): self.age=age#给self赋予了一个age方法,值为输入的age,,p.age=age name=‘yehaibin‘#数据属性#进行增删改查 def qiong(self): print(‘zhengzaitutan‘,self.age) def eat(self,name): print(‘%s adssa%s‘ %(self.age,name)) China.eat=eat China.gender=‘nans‘
2.2 类与实例
1. 实例在调用方法时,会自动传入self值,类不会
2.凡是使用.来调取方法的,都必须遵从类的方法,也就是无法从全局变量中引用
name=‘123‘ class Test: name=‘567‘ def test(): print(name) p1=Test.test print(p1) --- 123#因为name是直接使用的,所以会调用全局变量,
ame=‘123‘ class Test: name=‘567‘ def test(self): print(self.name) p1=Test() print(p1.test())#此时调用了类的方法,这是类内的作用域有效果
3.在类中可以看做函数的作用域
4.
以上是关于2018-07-03-Python全栈开发day24-面向对象设计的主要内容,如果未能解决你的问题,请参考以下文章