- java和c#只支持面向对象编程,python即可支持面向对象也可以支持函数式编程.
- 面向对象两个重要的概念: 1.类 2.对象
- 函数式 def sendemail(email,msg): 函数
print("8888")
- 面向对象 class Myclass:
def sendmail(self,email,msg): 函数定义在类中第一个参数必须是self
print("8888") 函数在类中定义叫方法
5.面向对象首先得创建类,然后再创建对象.类中的方法只能通过类的对象来调用.
6.面向对象中方法中第一个参数self的实质
class SQLHelper:
def __init__(self):
pass
def query(self,sql):
print(self.host)
obj1 = SQLHelper() //当一个类名的后面加了一个括号的话,就会自动调用类中的__ini__()方法
obj1.host="1.1"
obj1.query(sql) //obj1调用SQLHepler中的query方法是,query方法中第一个参数self表示obj1
obj2 = SQLHelper()
obj2.host ="1.2"
obj2.query(sql) //obj2调用SQLHepler中的query方法是,query方法中第一个参数self表示obj2
7.python类中被调用的方法不一定要在调用方法之前定义(不用关心方法的定义顺序,先执行了_init_),
这点和python函数式编程不一样(调用的函数必须定义在被调用函数之后,代码从上往依次执行).
8.函数式的应用场景 --> 各个函数之间是独立且无共用的数据
面向对象应用场景 --> 各个函数之间存在大量重复调用
面向对象的封装来说,其实就是使用构造方法将内容封装到对象中,然后通过对象直接或者self间接
获取被封装的内容
9.多态
在python中函数中的参数无需指定参数类型可以接收任意类型的参数,自动实现了多态
其他语言通过类继承的方式,函数中的参数必须是指定的类型或者指定类型的子类型来实现多态
10.