函数式编程能实现的,OOP都可以满足。函数式编程的思想主要为:先编好一个个我们需要的具有特定功能的函数,然后再声明(Python 只用把所要用的函数全部写在最前面即可),比如 C 或者一些其他面向过程的程序设计语言,写完函数就需声明。

接下来我就用多个简单的实例,来个大家展现两种不同的"编程思想" 来实现相同的功能


两段程序都将实现同一个目的,也就是打印下面这句话:


Python函数式编程与面向对象编程的思想(OOP)转变_编程思想


一、我们先看看"函数式编程" 的程序写法

def bug():
print("and I dislike debugging!!!")

def Hello(name):
print("Hello,I am",name)

Hello('Gorit') #上面的函数我们加了一个参数name,我们可以直接在要调用的函数中填入我们期望的参数
bug() #直接调用函数


这里大部分小伙伴学习的必经之路,一个程序的各个功能的实现由各种函数编写而成



二、我们通过模块来装入我们定义的函数


稍微高级一点的,就用模块来填装我们的函数,(​​不知道怎么导入模块的点我​​) 这样可以使我们的程序变得更加简洁


我们再创建一个名字为 “python1” 的python文件,然后加入上面定义的函数

Python函数式编程与面向对象编程的思想(OOP)转变_编程思想_02

然后像上图一样再新建一个"python1_1" 的文件,这样我们就可以实现模块化的函数编程

"python1" 是我们定义好的一个模块 ,我们在"python1_1" 中就来导入这个模块

import python1

python1.Hello('Gorit') #通过我们导入的模块来调用其中的函数
python1.bug()

 这样看起来程序是不是比第一行中的更加简洁呢?


三、接下来我们要看的就是用"OOP"编程思想来实现上述的功能

class Tar(): #Tar是我们定义的一个类

def Bug(self): #这里是我们定义的函数,在OOP中,函数的名称又叫“方法”
print('and I dislike debugging!!!')

def hello(self,name): #在hello中这个方法中,我们添加了一个 “name” 的参数
print("Hello,my name is",name)

object = Tar()# 创建一个实例
object.hello('Gorit') #在OOP中,我们需要通过实例来访问方法
object.Bug()# 调用方法

打印的内容和上面是一样的


四、通过模块导入"类", 来实现上述功能


这里我们在上面创建的python文件(python1),加入这段代码,不清楚这块的可以看这篇博客—— ​如何通过模块导入类?​


'''def bug():
print("and I dislike debugging!!!")

def Hello(name):
print("Hello,I am",name)
'''
#将上面函数式编程的代码注释掉

class Tar():

def Bug(self):
print('and I dislike debugging!!!')

def hello(self,name):
print("Hello,my name is",name)

然后再创建一个新的python文件,名字为 "python1_2",写入下面的代码:

from python1 import Tar #只导入一种模块

my_introduction = Tar()
my_introduction.hello('Gorit')
my_introduction.Bug()


#整个导入
import python1

my_introduction = python1.Tar()
my_introduction.hello('Gorit')
my_introduction.Bug()

然后你就可以看到你想看到的你想看到的,哦也!!!