1.面向对象
通过定义对象的属性和方法,来描述他们的状态和行为
2.类
类的属性:
用于描述对象的属性(数据)和方法(行为),对象是类的具体实例,表示一个具体的实体.
通过定义一组相关的属性和方法来封装数据和操作.从而提供了一种组织和管理代码的方法.
用到class方法,用大驼峰.
类属性可以通过类名,或者实例对象进行访问
类的方法:
与类相关联的函数,用来定义对象的行为,方法在类中定义,通过对象调用.
方法可以访问,操作对象的属性
第一个形参是self的方法叫做实例方法,类属性可以通过实例对象来访问
3类的对象:
类的对象是类的具体实例,也叫实例对象类定义对象的属性和方法,对象是类的实体,具有自己的属性值和对类中的访问权限.
class Student:
name = '王五'
age = '20'
def introduce(self):
print(f'我是{self.name},{self.age}岁')
def study(self):
print(f'{self.name}现在还在学习')
stu = Student() #创建了一个实例对象
stu.introduce()
创建对象.
实例方法:
定义子在类中的方法,可以访问和操作对象的实例属性,并且在调用时会自动传入对象自身,通常用self作为第一个参数,实例方法是与类的实例关联的,并且可以访问和修改对象的状态.
使用时需要先创建实例对象,然后通过对象调用方法,在调用实例方法不用手动传self,会自动传
stu.study Student.study(stu)
def study_sth(self, sth):
print(f'{self.name}正在学习{sth}')
stu = Student()
stu.study_sth('语文')
关于self:
- 在实例方法中, 第一个参数通常是
self
, 表示对象自身.定义实例方法时, 必须将self
作为方法的第一个参数.通过self
, 方法可以访问对象的属性和其他方法. - 在创建类的实例(对象)时, Python会自动传递
self
参数给实例方法, 不需要手动传入.当调用对象的方法时, 无需显式传递self
, Python会自动将对象本身传递给方法. - 在实例方法内部, 可以通过
self
来访问对象的属性和方法.例如,self.attribute
可以访问对象的属性,self.method()
可以调用对象的其他方法
4.对象的初始化:
init,用于初始化对象的属性,创建对象时自动调用的构造方法,也叫魔法方法
对对象的属性进行初始化操作,比如设置默认值,或接收外部传入的参数.
在调用类创建对象时,python会自动调用类的__init__方法来初始化对象的属性
stu = Student(‘王五’, 30)
实例属性:
实例属性,是指定义在类的实例(对象)中的属性,每个对象都有自己独立的实例属性,在类的实力化过程中被赋予特定的值.
使用__init__方法,每个实例属性都是一个对象独有的变量,不同对象之间互不干扰.
def __init__(self):
self.name = 'wangwu'
self.age = 20
- 定义位置:
- 实例属性:实例属性是定义在类的方法中(通常是在构造函数
__init__
中)通过self
关键字定义的, 每个实例(对象)都有自己的一份实例属性. - 类属性:类属性是定义在类的方法之外的属性, 直接在类的内部定义的, 属于整个类, 所有实例共享同一份类属性.
- 存储位置:
- 实例属性:每个实例(对象)都有自己独立的实例属性, 存储在对象中.
- 类属性:类属性属于整个类, 存储在类中.
- 值的独立性:
- 实例属性:不同实例的同名实例属性是相互独立的, 一个实例的实例属性修改不会影响其他实例.
- 类属性:所有实例共享同一份类属性, 但是通过一个实例修改类属性时, 这个修改不会影响其他实例的类属性.类属性是属于类的, 而不是属于实例的, 因此每个实例都拥有独立的类属性副本, 互不影响.
- 访问方式:
- 实例属性:通过对象访问, 使用表达式
对象名.属性名
. - 类属性:可以通过类名访问, 也可以通过对象访问.使用表达式
类名.属性名
或对象名.属性名
.
5.str
__str__
是Python中的特殊方法(魔法方法), 用于定义类的实例的字符串表示.当我们使用print
函数或str()
函数打印一个对象时, 实际上是调用了该对象的__str__
方法来获取其字符串表示.
打印:当你使用print
函数打印一个对象时, 实际上是调用该对象的__str__
方法来获取其字符串表示, 从而以更直观和易读的方式显示对象的信息.
字符串转换:当你使用str()
函数来将一个对象转换为字符串时, 同样会调用该对象的__str__
方法, 以获得其字符串表示.
字符串格式化:在字符串格式化时, 如果包含了对象, Python会自动调用对象的__str__
方法, 以便获取对象的字符串表示.