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.

   

  

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

时间: 2024-11-13 08:59:42

2018-07-03-Python全栈开发day24-面向对象设计的相关文章

Python全栈开发之面向对象

No.1 概念 面向对象的特点? 注重对象和指责,不同的对象承担各自的指责 更加适合对复杂的需求变化,专门应对复杂项目开发,提供固定的套路 面向对象强调的是谁来做,面向过程强调的如何做 什么是类 类是对一群具有相同特征或者行为的事物统称,是抽象的,不能直接使用,特征被称为属性,行为被称为方法,类就是一个模板 什么是对象 对象是由类创建出来的一个具体存在,可以直接使用,通过哪个类创建出来的实例,就拥有哪个类中定义的特征和行为 类和对象的关系 类是模板,对象是根据类这个模板创建出来的,先有类,再有对

python全栈开发 * 23 面向对象 知识点汇总 * 180704

23 面向对象 -----特殊方法 1. isinstance(obj,类名) 判断对象是否是此类实例化或者此类的子类实例化出来的class A:passclass B(A):passb1=B()print(isinstance(b1,B)) # Trueprint(isinstance(b1,A)) # True2.issubclass(类名,类名1) 判断类名是否是类名1的子类class A:passclass B(A):passprint(issubclass(B,A)) #Truepri

python全栈开发 * 18 面向对象知识点汇总 * 180530

18 面向对象初识1class person: level="高级动物" mind="有思想" def __init__(self,name,age,gent,area,hobby): self.name=name self.age=age self.gent=gent self.area=area self.hobby=hobby print("__init__") pass def walk(self): pass def eat(self)

Python全栈开发【基础三】

Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 6 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 总结使用函数的好处: 1.减少代码重用 2.保持一致性,易维护

Python全栈开发【第一篇】:初识Python

Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与while循环练习题 基本数据类型前引 Python 的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton Python的Java实现,Jython会将Pyth

Python全栈开发

Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator),装饰器的功能非常强大,但是理解起来有些困难,因此我尽量用最简单的例子一步步的说明这个原理. 1.不带参数的装饰器 假设我定义了一个函数f,想要在不改变原来函数定义的情况下,在函数运行前打印出start,函数运行后打印出end,要实现这样一个功能该怎么实现?看下面如何用

Python全栈开发【基础二】

Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 1 class int(object): 2 """ 3 int(x=0) -> integer 4 int(x, base=10) -&g

python全栈开发目录

python全栈开发目录 linux命令 初识python python基础数据类型 函数编程.set.深浅拷贝 内置函数 文件操作 装饰器 迭代器和生成器 常用模块 初识类和对象 类和对象(进阶) 反射 异常处理 socket.IO多路复用 线程.进程.协程 HTML CSS JavaScript DOM文档操作 jQuery实例 web框架本质 Tornado mysql基础 mysql进阶 ..... 基本算法 递归--二分法查找 冒泡排序 更多 线程池

Python全栈开发【基础四】

Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 匿名函数 lambda表达式:对于简单的函数,存在一种简便的表示方式,即lambda表达式 1 #这段代码 2 def calc(n): 3 return n**n 4 print(calc(10)) 5 6 #换成匿名函数 7 calc = lambda n:n**n 8 print(calc(10)) 匿名函数主要是和其它函数搭配使用 举例: 1 ########

自学Python全栈开发第一次笔记

我已经跟着视频自学好几天Python全栈开发了,今天决定听老师的,开始写blog,听说大神都回来写blog来记录自己的成长. 我特别认真的跟着这个视频来学习,(他们开课前的保证书,我也写了一份,哈哈哈...)我现在是准大学生,准备学习编程,日后做一个程序员,哈哈哈.听说程序员很苦逼,不过貌似挣得也很多啊.并且我貌似也只喜欢计算机这个方面,所以我想在这个行业发光. 前些天学习了一些Linux一些命令: pwd     查看你当前所在的目录  /root=计算机/E盘 /    是根目录 cd(ch