副问题[/!--empirenews.page--]
面向工具编程和函数式编程(面向进程编程)都是措施计划的要领,不外稍有区别。
面向进程编程:
1. 导入各类外部库
2. 计划各类全局变量
3. 写一个函数完成某个成果
4. 写一个函数完成某个成果
5. 写一个函数完成某个成果
6. 写一个函数完成某个成果
7. 写一个函数完成某个成果
8. ......
9. 写一个main函数作为措施进口
在多函数措施中,很多重要的数据被安排在全局数据区,这样它们可以被全部的函数会见。每个函数都可以具有它们本身的局部数据,将某些成果代码封装到函数中,日后便无需一再编写,仅挪用函数即可。从代码的组织情势来看就是按照营业逻辑从上到下垒代码 。
面向工具编程:
1. 导入各类外部库
2. 计划各类全局变量
3. 抉择你要的类
4. 给每个类提供完备的一组操纵
5. 明晰地行使担任来示意差异类之间的配合点
6. 按照必要,抉择是否写一个main函数作为措施进口
面向工具编程中,将函数和变量进一步封装成类,类才是措施的根基元素,它将数据和操纵细密地连结在一路,并掩护数据不会被外界的函数不测地改变。类和和类的实例(也称工具)是面向工具的焦点观念,是和面向进程编程、函数式编程的基础区别。
并不长短要用面向工具编程,要看你的措施怎么计划利便,可是就今朝来说,根基上都是在行使面向工具编程。
类的根基用法
面向工具是通过界说class类来界说,这么说面向工具编程就是只行使class类,在class类中有封装,担任的成果,而且还可以结构要传入的参数,利便节制。
案例一
- import sys
- import time
- reload(sys)
- sys.setdefaultencoding('utf-8')
-
- class studetn:
- # 界说一个类名为studetn
- def __init__(self,idx):
- # 界说初始化结构,这里行使init,尚有此外属性好比reversed,iter之类的
- self.idx=idx
- # 初始化变量,利便担任
- def runx(self):
- # 界说运行函数,从上面担任变量
- print self.idx
- # 打印出idx的值,可能做一些此外处理赏罚
- time.sleep(1)
- a=studetn('a')
- a.runx()
- # 这是类的挪用,必然要记得类的行使要领,起首传入参数,类赋值给一个变量a
- # 然后挪用这个类下面界说的函数
一些专业术语观念,既然有面向工具编程这个高峻上的界说了,天然要搭配一些高峻上的观念。
- 类(Class): 用来描写具有沟通属性和要领的工具的荟萃。它界说了该荟萃中每个工具所共有的属性和要领。个中的工具被称作类的实例。
- 实例:也称工具。通过类界说的初始化要领,赋予详细的值,成为一个”有血有肉的实体”。
- 实例化:建设类的实例的进程或操纵。
- 实例变量:界说在实例中的变量,只浸染于当前实例。
- 类变量:类变量是全部实例公有的变量。类变量界说在类中,但在要领体之外。
- 数据成员:类变量、实例变量、要领、类要领、静态要领和属性等的统称。
- 要领:类中界说的函数。
- 静态要领:不必要实例化就可以由类执行的要领
- 类要领:类要领是将类自己作为工具举办操纵的要领。
- 要领重写:假如从父类担任的要领不能满意子类的需求,可以对父类的要领举办改写,这个进程也称override。
- 封装:将内部实现包裹起来,对外透明,提供api接口举办挪用的机制
- 担任:即一个派生类(derived class)担任父类(base class)的变量和要领。
- 多态:按照工具范例的差异以差异的方法举办处理赏罚。
类与实例
- # -*- coding: utf-8 -*-
- # @Time : 2018/5/3 0003 17:02
- # @Author : Langzi
- # @Blog : www.langzi.fun
- # @File : 面向工具2.py
- # @Software: PyCharm
- import sys
- import time
- import requests
- reload(sys)
- sys.setdefaultencoding('utf-8')
-
- class cc:
- ccc = 'ccc'
- # cc就是类名 假如想要担任此外类 就class cc(threading) 意思就是从threading担任
- def __init__(self,a,b,c):
- self.a=a
- self.b=b
- self.c=c
- # 界说结构的进程就是实例化
- def runx(self):
- print self.a*10
- print self.b*5
- print self.c*2
- def runy(self):
- print requests.get('http://www.langzi.fun').headers
- e = cc('AAA','CCC','EEE')
- e.runx()
- e.runy()
- # 这两个就是挪用类内里的要领
- print e.c
- #实例变量指的是实例自己拥有的变量。每个实例的变量在内存中都纷歧样。
- print e.ccc
- #类变量,在类内里找到界说的变量。
- 挪用类的三种要领
挪用类的三种要领
(编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|