python面向对象
编程思维
1.面对过程编程(穷人思维)
遇到问题马上想到的是解决问题的步骤和方案。
工具:思路和基础语法
2.函数式思维(小资思维)
遇到问题马上想到的是是否已经存在一个函数具备解决问题的能力,如果有直接用,没有就造一个。
工具:函数+思路+基础语法
3.面向对象编程(富豪思维)
遇到问题马上想到有没有一个对象具备这个功能,如果有直接用,没有就创建这个对象,创建对象要看有没有类,没有类还要创建类。
工具:类+对象+函数+思路+基础语法
认识类和对象
1.概念
类:类是具有相同功能和相同属性的对象的集合,是一类事物的总称,是抽象的概念。
对象:对象就是类的实例,类的具体表现。
2.定义类(创建类)
创建类就是用代码清楚描述这个是有在哪些相同功能(函数)和哪些相同属性(保存数据的变量)的对象的集合。
语法:
class 类名
类的说明文档
类的内容(方法和属性)
说明:
class - 关键字;固定写法;
类名 - 程序员自己命名;
要求:是标识符,不能关键字、函数名、模块名、类名;
规范:见名知意;驼峰式命名,并且首字母大写,不能使用系统已经使用的名字;
: - 固定写法;
类的说明文档 - 本质就是多行注释;
类的内容 - 由方法和属性组成;方法就是定义在类中的函数,属性就是定义在类中的变量;方法分为对象方法、类方法和静态方法三种,属性分为类属性和对象属性两种。
3.创建对象
对象又叫实例。
语法:
类名()
方法 - 定义在类中的函数
1.对象方法
1)怎么定义:将函数直接定义在类中。
2)怎么调用:通过‘对象.’的方式调用。
3)特点:自带参数self,在通过对象调用对象方法的时候,参数self不需要传参,系统会自动将当前对象传给self,self是谁调用就指向谁。
2.类方法
1)怎么定义:在定义函数前加装饰器:@classmethod。
2)怎么调用:通过‘类.’的方法调用。
3)特点:自动参数cls,在调用的时候cls不用传参,系统会自动将当前类传给cls。
3)静态方法
1)怎么定义:在调用函数前面加装饰器:@staticmethod。
2)怎么调用:通过‘类.’的方法调用。
3)特点:没有特点
class Percon:
def func1(self):
print('对象方法', self)
@classmethod
def func2(cls):
print('类方法')
@staticmethod
def func3():
print('静态方法')
常见的两个魔法方法
1.__init__
在通过类创建对象的时候会被自动调用;
创建对象的时候需不需要参数需要多少看这个__init__
方法出来self以外有没有额外的参数,有多少。
2.__repr__
打印类的对象的时候会自动调用类中__repr__
方法,并且获取这个方法的返回值为打印结果,返回值必须是字符
class Dog:
def __init__(self):
print('__init__')
def __repr__(self):
return 'abc'
dog = Dog()
print('dog对象:', dog)
# __init__
# dog对象: 123