C# 对象作为参数_史上最全 Python 面向对象编程

面向对象编程和函数式编程(面向过程编程)都是程序设计的方法,不过稍有区别 。
面向过程编程:
1. 导入各种外部库2. 设计各种全局变量3. 写一个函数完成某个功能4. 写一个函数完成某个功能5. 写一个函数完成某个功能6. 写一个函数完成某个功能7. 写一个函数完成某个功能8. ......9. 写一个main函数作为程序入口
在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问 。每个函数都可以具有它们自己的局部数据,将某些功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 。从代码的组织形式来看就是根据业务逻辑从上到下垒代码。
面向对象编程:
1. 导入各种外部库2. 设计各种全局变量3. 决定你要的类4. 给每个类提供完整的一组操作5. 明确地使用继承来表现不同类之间的共同点6. 根据需要,决定是否写一个main函数作为程序入口
面向对象编程中,将函数和变量进一步封装成类,类才是程序的基本元素,它将数据和操作紧密地连结在一起,并保护数据不会被外界的函数意外地改变 。类和和类的实例(也称对象)是面向对象的核心概念,是和面向过程编程、函数式编程的根本区别 。
并不是非要用面向对象编程,要看你的程序怎么设计方便,但是就目前来说,基本上都是在使用面向对象编程 。
类的基本用法
面向对象是通过定义class类来定义,这么说面向对象编程就是只使用class类,在class类中有封装,继承的功能,并且还可以构造要传入的参数,方便控制 。
案例一
import sysimport timereload(sys)sys.setdefaultencoding('utf-8')class studetn:# 定义一个类名为studetndef __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): 用来描述具有相同属性和方法的对象的集合 。它定义了该集合中每个对象所共有的属性和方法 。其中的对象被称作类的实例 。实例:也称对象 。通过类定义的初始化方法,赋予具体的值,成为一个”有血有肉的实体” 。实例化:创建类的实例的过程或操作 。实例变量:定义在实例中的变量,只作用于当前实例 。类变量:类变量是所有实例公有的变量 。类变量定义在类中,但在方法体之外 。数据成员:类变量、实例变量、方法、类方法、静态方法和属性等的统称 。方法:类中定义的函数 。静态方法:不需要实例化就可以由类执行的方法类方法:类方法是将类本身作为对象进行操作的方法 。方法重写:如果从父类继承的方法不能满足子类的需求,可以对父类的方法进行改写,这个过程也称 。封装:将内部实现包裹起来,对外透明,提供api接口进行调用的机制继承:即一个派生类( class)继承父类(base class)的变量和方法 。多态:根据对象类型的不同以不同的方式进行处理 。类与实例
# -*- coding: utf-8 -*-# @Time: 2018/5/3 0003 17:02# @Author: Langzi# @Blog: www.langzi.fun# @File: 面向对象2.py# @Software: PyCharmimport sysimport timeimport requestsreload(sys)sys.setdefaultencoding('utf-8')class cc:ccc = 'ccc'# cc就是类名 如果想要继承别的类 就class cc(threading) 意思就是从threading继承def __init__(self,a,b,c):self.a=aself.b=bself.c=c# 定义构造的过程就是实例化def runx(self):print self.a*10print self.b*5print self.c*2def runy(self):print requests.get('http://www.langzi.fun').headerse = cc('AAA','CCC','EEE')e.runx()e.runy()# 这两个就是调用类里面的方法print e.c#实例变量指的是实例本身拥有的变量 。每个实例的变量在内存中都不一样 。print e.ccc#类变量,在类里面找到定义的变量 。