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-面向对象设计的主要内容,如果未能解决你的问题,请参考以下文章

python全栈开发-Day2 布尔流程控制循环

Python全栈_Day2

python 全栈开发 day2 字符编码与计算机容量

Python全栈之路Day2 (补)

老男孩Python全栈:Day2(上)

全栈Python教程day2