码迷,mamicode.com
首页 > 编程语言 > 详细

2018-07-03-Python全栈开发day24-面向对象设计

时间:2018-07-03 23:41:55      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:面向对象设计   bin   增删改   生成   增删改查   类的方法   增加   name   return   

面向对象:

  根据现实中存在的东西,模拟出其特征,用来描述特定对象。

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-面向对象设计

标签:面向对象设计   bin   增删改   生成   增删改查   类的方法   增加   name   return   

原文地址:https://www.cnblogs.com/hai125698/p/9261019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!