面向对象
- 什么是类:
- 拥有相同功能、相同属性的对象的集合(抽象的概念)
- 什么是对象:
- 对象是类的实例(具体的事物)
从生活角度理解类和对象:
人是类;唐僧这个人是对象
车是类;我的布加迪是对象
狗是类:我养的二哈是对象
1.创建类和对象
1-1创建类
-
用代码描述清楚这个类是拥有哪些功能(函数)和哪些相同属性(变量)的对象的集合。
-
语法:
class 类名: 类说明文档 类的内容(方法和属性)
-
说明:
class - 关键字:固定写法 类型 - 程序员自己命名; 要求:标识符、不是关键字 规范:见名知义;驼峰式命名(单词首字母大写),不使用系统函数名、类名、模块名 类的说明文档 - 多行注释 类的内容 - 包含属性和方法 属性:类属性(类的字段)、对象属性 方法:对象方法、类方法、静态方法 注:方法就是定义在类中的函数
1-2创建对象
- 语法:类名()
# 创建类
class Person():
def eat(self):
print('吃碗小面')
# 创建对象
tao = Person()
print(tao)
# 使用对象方法
tao.eat()
2.对象方法
- 直接定义在类中的函数就是对象方法。
- 怎么调用:
- 通过"对象." 的形式来调用
- 特点:
- 有默认参数self,这个参数在调用的时候不用传参,系统会自动将当前对象传给self。(谁调用指向谁)
class Student:
# study、eat是一个对象方法
def study(self):
print('学习',self)
print(stu1)
def eat(self, food='米饭'):
print(f'吃{
food}')
stu1 = Student()
stu1.study()
stu1.eat(food='小面')
3._ _ init _ _方法
- _ _ init _ _方法 - 初始化方法
1)构造方法:
- 函数名于类名相同,用来创建对象的函数就是构造函数(构造方法)
- python的构造函数,不需要程序员自己写,创建类的时候系统会自动创建这个类的构造函数。
2)初始化方法(_ _ init _ _)
-
当通过类创建对象的时候系统会自动调用__init__方法。
-
在调用构造函数创建对象的时候,需要几个参数看对应的__init__除了self以外有几个(可以0个)额外参数。
-
c. 程序员在类中添加__init__方法的时候只需要保证方法名是__init__有默认参数self就可以,参数和函数体可随意添加。
- 补充:方法名前后都有两个下划线的方法又叫魔法方法,这种方法不需要程序员去调用,在特定条件下会被自动调用。
class Dog:
def __init__(self, food):
print(f'初始化方法,创建自动调用{
food}')
dog = Dog('s')