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

Posted 小心走火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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())
View Code
 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)

 



以上是关于Python面向过程和面向对象基础的主要内容,如果未能解决你的问题,请参考以下文章

Python基础之面向对象基本概念

python基础之面向对象

python——面向对象基础

Python基础6-1 面向对象编程

Python基础-初始面向对象

Python之面向对象:面向对象基础