一、认识类和对象
1. 编程思想
- 面向过程编程: 穷人思想 (基本语法、分支、循环、逻辑思维)
- 函数式编程:小资思想 (基本语法、分支、循环、逻辑思维、函数)
- 面相对象编程:富豪思想 (基本语法、分支、循环、逻辑思维、函数、类、对象)
求10的阶乘
s = 1
for x in range(1, 11):
s *= x
print(s)
def factorial(num):
s = 1
for x in range(1, num+1):
s *= x
return s
print(factorial(10))
2.什么是类、什么是对象
类就是具有相同功能和相同属性的对象的集合。(类是一个抽象的概念)
对象就是类的实例。(某一类事物的具体表现)
人是类,某个具体的人是人的对象,骆老师也是人的对象;
电脑是类,我桌上这台电脑就是电脑的对象;
车是类,我家的车那辆车是对象,楼下停着的那辆红色的车是对象;汽车、工程车、出租车是车的子类(分类)
3.定义类(创建类)
用代码来描述这个类是拥有哪些相同属性和哪些相同功能的对象的集合
数值相关的共同特点用属性来描述 (属性就是定义在类变量)
非数值相关的共同特点用方法来描述 (方法就是定义在类中的函数)
语法:
class 类名:
类的说明文档
类的内容
说明:
1)class - 关键字;固定写法
2)类名 - 由程序员自己命名;必须满足两点命名要求
三个规范:首字母大写,采用驼峰式命名(大驼峰); 见名知义; 不使用系统函数、类、模块名
3): - 固定写法
4)类的说明文档 - 多行注释
5)类的内容 - 在这儿用代码来描述这个类相同的功能和属性和有哪些;
主要包含属性(对象属性、类属性)和方法(对象方法、类方法、静态方法)
class Person:
"""这是人类"""
pass
4. 创建类的对象
语法:类名() ( 创建指定类的对象并且返回)
p1 = Person()
p2 = Person()
print(p1)
print(p2)
二、类中的方法
1. 方法 - 对象方法、类方法、静态方法
-
1)对象方法
a.怎么定义:直接定义在类中的函数就是对象方法
b.怎么调用:以’对象.xxx()'的方式来调用 - 通过对象来调用对象方法
c.特点:通过对象来调用对象方法的时候默认参数self不需要传参,系统会自动将当前对象传给self(self是谁调用就指向谁)
d.应用场景: -
2)类方法
a.怎么定义:需要在定义函数前加"@classmethod"
b.怎么调用:以 '类.xxx()'的方式来调用 - 通过类来调用类方法
c.特点:通过类来调用类方法的时候默认参数cls不用传参,系统会自动将当前类传给cls
d.应用场景: -
3)静态方法
a.怎么定义:需要再定义函数前加"@staticmethod"
b.怎么调用:以 '类.xxx()'的方式来调用 - 通过类来调用静态方法
c.特点:没有特点
d.应用场景:
class A:
def func1(self):
print('对象方法:', self)
def <