Python面向过程和面向对象基础

总结一下:

面向过程编程:根据业务逻辑从上到下的写代码-----就是一个project写到底,重复利用性比较差

函数式:将某些特定功能代码封装到函数中------方便日后调用

面向对象:对函数进行分类封装,使开发更快捷更灵活

面向过程编程:

1 name = "mac"
2 age = 15
3 sex = ‘male‘
4 #......
5 print("%s‘s %s,%d years old!" %(name,sex,age))

函数式:

 1 def name(name):
 2     print(‘name is %s‘ %name)
 3 def age(age):
 4     print(‘age is %d‘ %age)
 5 def sex(sex):
 6     print(‘sex is %s‘ %sex)
 7
 8 name(‘mac‘)
 9 age(22)
10 sex(‘male‘)

面向对象:

一、封装

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。

所以,在使用面向对象的封装特性时,需要:

  • 将内容封装到某处
  • 从某处调用被封装的内容
class Message():
    def __init__(self,name,age):
        self.name = name
        self.__age = age

    def get_name(self):
        return self.name
    def get_age(self):
        return self.__age

message = Message(‘MAC‘,23)
print(message.get_name(),message.get_age())

二、继承

继承,面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。

 1 class Parent(object):
 2     def __init__(self,name,age,sex):
 3         self.name = name
 4         self.__age = age        #表示私有
 5         self.sex = sex
 6
 7     def get_name(self):
 8         return self.name
 9     def get_age(self):
10         return self.__age
11     def get_sex(self):
12         return self.sex
13
14 class Child(Parent):        #继承Parent父类
15     def get_age(self):
16         return self.age
17
18 P = Parent(‘mac‘,22,‘male‘)
19 C = Child(‘YYY‘,24,‘female‘)
20 print(P.get_name(),P.get_age(),P.get_sex())
21 print(C.get_name(),C.get_sex())

 1 class Parent(object):
 2     def __init__(self,name,age,sex):
 3         self.name = name
 4         self.__age = age        #表示私有
 5         self.sex = sex
 6
 7     def get_name(self):
 8         return self.name
 9     def get_age(self):
10         return self.__age
11     def get_sex(self):
12         return self.sex
13
14 class Child1(Parent):        #继承Parent父类
15     def get_age(self,age):
16         self.age = age        #私有类无法继承
17         return self.age

     def get_sex(self):
       return self.sex

18 class Child2(Parent):
19     def get_age(self):
20         return self.age
21 def func(x):
22     x.get_age
23
24 P = Parent(‘mac‘,22,‘male‘)
25 C1 = Child1(‘YYY1‘,24,‘female‘)
26 C2 = Child2(‘YYY2‘,24,‘female‘)
27 print(P.get_name(),P.get_age(),P.get_sex())
28 print(C1.get_name(),C1.get_sex(),C1.get_age(23))#调用自己的get_age()

三、多态 和多态性

多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)

一 什么是多态性(请务必注意注意注意:多态与多态性是两种概念。)

多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同功能的函数。

在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息(!!!obj.func():是调用了obj的方法func,又称为向obj发送了一条消息func),不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。

比如:老师.下课铃响了(),学生.下课铃响了(),老师执行的是下班操作,学生执行的是放学操作,虽然二者消息一样,但是执行的效果不同

多态性分为静态多态性和动态多态性

静态多态性:如任何类型都可以用运算符+进行运算

动态多态性:如下

 1 class Parent(object):
 2     def __init__(self,name,age,sex):
 3         self.name = name
 4         self.__age = age        #表示私有
 5         self.sex = sex
 6
 7     def get_name(self):
 8         return self.name
 9     def get_age(self):
10         return self.__age
11     def get_sex(self):
12         return self.sex
13
14 class Child1(Parent):        #继承Parent父类
15     def get_age(self,age):
16         self.age = age
17         return self.age
18     def get_sex(self):
19         print(self.sex)
20 class Child2(Parent):
21     def get_sex(self):
22         print (self.sex)
23 def func(x):
24     x.get_sex()
25
26 P = Parent(‘mac‘,22,‘male‘)
27 C1 = Child1(‘YYY1‘,24,‘male‘)
28 C2 = Child2(‘YYY2‘,24,‘female‘)
29 C1.get_sex()
30 C2.get_sex()
31 func(C1)
32 func(C2)

原文地址:https://www.cnblogs.com/nieliangcai/p/9051618.html

时间: 2024-10-14 16:23:09

Python面向过程和面向对象基础的相关文章

o'c基础第一天面向过程与面向对象

1. OC将C的复杂的东西简单 a. #import 指令. b. NSLog函数. c. NSString d. BOOL 2. OC在C的基础之上增加了一些面向对象的语法. 面向过程 面向对象. 是解决问题的不同的思路. 1). 将大象放进冰箱. a. 打开冰箱门. b. 把大象放进冰箱 c. 把冰箱门关上. 面向对象. 找到1个冰箱. 只要这个冰箱有自动开门 自动拉近大象 自动关门. 2). 买电脑的需求 a. 根据自己的预算和需求确定型号. 查找资料. b, rMBP 9288 c, 到

C++基础知识(六)--类--成员函数的定义--对象的创建与使用--从面向过程到面向对象

一.类 1.类是一种数据类型,将数据与对数据的操作(函数)放到一起.一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口,对象之间通过消息进行通讯. 2.如果在类的起始点无访问说明符,系统默认为私有(private) 3.类是一种数据类型,定义时系统不为类分配存储空间,所以不能对类的数据成员进行初始化.类中的任何数据成员也不能使用关键字extern,auto,register等关键字限定其存储类型 二.成员函数的定义 1.函数定义:通常在类定义中,成员函数仅做声明,函数

面向过程和面向对象的区别,方法重载和方法重写的区别

先有面向过程,而后退出面向对象 面向过程和面向对象两者都是软件开发思想,先有面向过程,后有面向对象.在大型项目中,针对面向过程的不足推出了面向对象开发思想. 打个比方 蒋介石和毛主席分别是面向过程和面向对象的杰出代表,这样充分说明,在解决复制问题时,面向对象有更大的优越性. 面向过程是蛋炒饭,面向对象是盖浇饭.盖浇饭的好处就是"菜""饭"分离,从而提高了制作盖浇饭的灵活性.饭不满意就换饭,菜不满意换菜.用软件工程的专业术语就是"可维护性"比较好,

面向过程与面向对象(一)

一.面向过程与面向对象:   面向过程: 重过程:解决问题,考虑的是解决问题的流程 解决问题的思路清晰,但拓展性不强   面向对象: 重对象:解决问题,找到解决问题的对象 解决问题的思路可能不止一条(理解解决问题的难度增加),但拓展性强 二.名称空间: 能产生名称空间的有:文件 | 函数 | 类 能产生名称空间的对象有__dict__这个值,通过该这个值访问到名字与地址的对应关系 def func(): pass func.__dict__['index'] = 10000 print(func

Python面向过程编程

目录 面向过程编程 面向过程编程 "面向过程"(Procedure Oriented)是一种以过程为中心的编程思想.这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响.与面向对象明显的不同就是封装.继承.类. 在python中就一句花,可以流水线的编程,调用返回值 面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际地实现.一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想

面向过程与面向对象的区别-遁地龙卷风

下面例子根据C和Java编写 面向过程与面向对象之间的区别在于认知世界的方式,后者在前者的基础上提供了更高的抽象层次-类. 也就是抽象.封装.继承.多态. 举个例子 输出 小明20岁<=>A,小明打篮球<=>B. 面向过程相当于在类中调用main方法输出A.B public class Test { public static void main( String[] args ) { System.out.println( "小明去上学" ); System.o

.NET 高级架构师0002 架构师之路(1)---面向过程和面向对象

1.引言     机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到.但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c.ctrl-v用得更加纯熟了.在中国,编程人员最终的归途无外乎两条:一是转向技术管理,它的终点是CTO:二是继续深入,它的终点是首席架构师,成为CEO的人毕

面向过程和面向对象及面向对象的三大特征

英文及缩写: 面向过程:procedure oriented programming POP 面向对象:object oriented programming OOP 面向对象和面向过程的历程: 面向过程编程采取的是时间换空间的策略,因为在早期计算机配置低,内存小,如何节省内存则成了首要任务,哪怕是运行的时间更长.随着硬件技术的发展,硬件不再成为瓶颈,相反更好的模拟现实世界.系统的可维护性等问题凸显出来,于是面向对象设计应运而生.当下:应用在PC机上的一般应用系统,由于不太需要考虑硬件的限制,而

面向过程和面向对象

面向过程和面向对象简介 一 .面向过程与面向对象的区别: 前者是一种谓语和宾语的关系:后者是一种主语和谓语的关系 . 二.面向对象的三个特征: 封装 继承 多态 三.类与对象: 对象又称作实例,是实际存在的该类事物的每个个体.类是对某一类事物的描述,是抽象的.概念上的 定义. 面向对象的设计的重点是类的设计. 四.对象的比较: 1 “= =”运算符与equals()方法的区别: 前者辨别实质是否相等:后者辨别长相是否相等. 五. 实现类的封装性: 1不能让外面的类随意修改一个类的成员变量: 2在