python编程:函数式编程和面向对象编程的对比

时间:2022-12-15 22:01:22

言而简之,面向对象编程就是把函数编程外面包装一个class类,然后再把这个class类指向一个对象

而class类中的函数在这里称为方法

举个例子:

用函数式编程写出一键发送邮件的脚本:

def e_mail(email,message):
print('邮件发送中...')
return True

e_mail('xxxx@163.com','邮件内容')

  

用面向对象编程写出一键发送邮件的脚本:

class Foo:
#e_mail称为方法
def e_mail(self,email, message):
print('邮件发送中...')
return True

#创建一个对象;对象名 = 类名()
obj = Foo()
#通过对象去执行这个方法
obj.e_mail('xxxx@163.com','邮件内容')

 不难发现,面向对象编程比普通的函数编程多了一个参数 self,那这个 self 是什么东西呢?

self是一个python自动会给传值的参数:

看实例:

class SQL:#定义数据库的增删改查
def fetch(self,sql):
pass
def create(self,sql):
pass
def remove(self,nid):
pass
def modify(self,name):
pass

obj =SQL()
obj.host='www.db1.com'#定义数据库的host,随后运行时会返回到self
obj.username='python'#定义数据库的用户名,随后运行时会返回到self
obj.password='123'#定义数据库的密码,随后运行时会返回到self


'''当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性赋值给对象,
然后python会把这些参数返回到self中'''


#运行fetch方法,并把参数指向sql,self里面已经被python返回了三个参数
obj.fetch('select * from DB')

 到这里基本简单了解函数式编程和面向对象编程的区别了:

 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性赋值给对象,然后python会把这些参数返回到self中