python面向过程还是面向对象_Python面向过程和面向对象基础

本文详细介绍了面向过程、函数式和面向对象编程三种编程范式的概念及其应用。面向过程编程关注业务逻辑的顺序执行,而函数式编程强调将功能封装在函数中以方便复用。面向对象编程则通过封装、继承和多态来提高代码的灵活性和可维护性。文中通过实例展示了如何创建对象、继承父类以及实现多态性。
摘要由CSDN通过智能技术生成

总结一下:

面向过程编程:根据业务逻辑从上到下的写代码-----就是一个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')

面向对象:

一、封装

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

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

将内容封装到某处

从某处调用被封装的内容

classMessage():

def __init__(self,name,age):

self.name=name

self.__age=age

def get_name(self):returnself.name

def get_age(self):returnself.__age

message= Message('MAC',23)

print(message.get_name(),message.get_age())

二、继承

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

ContractedBlock.gif

ExpandedBlockStart.gif

1 class Parent(object):2 def __init__(self,name,age,sex):3 self.name =name4 self.__age =age #表示私有5 self.sex =sex6

7 def get_name(self):8 returnself.name9 def get_age(self):10 returnself.__age11 def get_sex(self):12 returnself.sex13

14 classChild(Parent): #继承Parent父类15 def get_age(self):16 returnself.age17

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())

View Code

1 classParent(object):2 def __init__(self,name,age,sex):3 self.name =name4 self.__age = age #表示私有

5 self.sex =sex6

7 defget_name(self):8 returnself.name9 defget_age(self):10 return self.__age

11 defget_sex(self):12 returnself.sex13

14 class Child1(Parent): #继承Parent父类

15 defget_age(self,age):16 self.age = age #私有类无法继承

17 returnself.age

def get_sex(self):

return self.sex

18 classChild2(Parent):19 defget_age(self):20 returnself.age21 deffunc(x):22 x.get_age23

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 classParent(object):2 def __init__(self,name,age,sex):3 self.name =name4 self.__age = age #表示私有

5 self.sex =sex6

7 defget_name(self):8 returnself.name9 defget_age(self):10 return self.__age

11 defget_sex(self):12 returnself.sex13

14 class Child1(Parent): #继承Parent父类

15 defget_age(self,age):16 self.age =age17 returnself.age18 defget_sex(self):19 print(self.sex)20 classChild2(Parent):21 defget_sex(self):22 print(self.sex)23 deffunc(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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值