言而简之,面向对象编程就是把函数编程外面包装一个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中