类和对象
类,相当于是一个图纸或者是模具
对象,是利用类所生产出来的实体的东西,只要有一个类,我们就可以创造出无数的实体。创造出来的实体,我们叫做实例对象
创建对象前,要先明确
这个对象是用来干什么的
它应该有哪些属性,是需要的。有哪些方法是需要的。
不同的类,会创建不同的对象
飞机图纸的类,只能用于创建飞机对象
小熊饼干模具的类,只能用于创建小熊饼干
类的定义
class关键词,用于定义类
类比于函数的定义,函数是使用def来定义的
class 类名(object):
类的代码(定义属性,定义方法)
class 类名:
类内部的代码,定义属性,定义方法
类的属性
使用变量赋值的方式,给类添加属性
age = 18
name = ‘小明’
height = 1.75
类的方法
def 方法名(self,参数):
方法内的代码
类转变为实例的操作
相当于使用小熊饼干的模具,要做小熊饼干了
办法
模具() 就生成了一个饼干
类比于函数的调用
函数名(),可以调用一个函数
类》对象
类名(),就会创建一个对象
获取对象属性与方法
对象.属性,可以得到属性对应的值
对象.方法名(),可以让方法运行
190328四
给对象赋值的办法
给对象添加属性的操作,给对象修改属性操作
对象.属性 = 值
通过这种方式,可以让对象拥有该属性
类创建对向
类中的属性,对向都可以使用
函数中变量的生命周期复习
def fun(name):
print(name)
fun('张三')
函数中的变量是局部变量
他的生命周期是
从函数运行开始,出生,有生命了
当函数运行结束,局部变量就销亡
self的使用范围
在类中,我们会定义方法
默认我们定义的方法,pycharm都会自动给我们的方法加上一个self参数,作为第一个参数
经过了验证
self这个东西,只能够在有self参数的方法中使用(无slef的方法,不可以使用self)
self的效果
self的内存地址,与对向的内存地址是一模一样的
对象可以有的属性方法操作,self都可以有
注意
我们只能够在self有生命的位置,使用self
init初始化方法
init方法
写法是
def __init__(self,形参1):
初始化需要处理的代码
用法
类在实例化为对象的过程中
如果类名后面的括号中有参数
参数会按照位置对应关系,传递到__init__
方法中
例子
t = Cat(‘tom’)
'tom’会传递给init中的形参1
对象 = 类名()
把类实例化为对象的格式,使用蛋糕模具,制作出一个蛋糕实体的格式
蛋糕实体 = 蛋糕模具()
对象 = 类(参数1)
del方法
__del__
会在对向被注销时,自动执行的方法
对象被注销的两种情况
-
使用删除的语句让对象消失
del 对象
del(对象)
-
整个程序执行完成(py文件)
str方法
控制打印对象时的输出显示内容
__str__
创建对象时要考虑的东西
1,属性(类的属性,对象的属性)
2,方法
如果希望打印对象时出现指定的内容
那就使用str方法来修改打印输出的格式
print(对象)
190329五
初始化对象属性
如果一个对象在创建的时候,需要有对象的属性
那么,我们应该在init方法中进行初始化
初始化操作主要的处理是
对象.属性 = 值
问题,值从哪里来?
类在进行实例化时,往类名后面的括号中,传递数据
t = Cat(‘汤姆’)
通过这种方式传参
对象 = 类名(参数)
参数会传送到init方法中,按照位置对应的关系进行给值
初始化方法定义的时候
def __init__(self, 形参1,形参2):
我们在外部把类实例化对象时传参这样传
对象 = 类名(实参1,实参2)
通过这种方式传递参数
实参1的数据,会传递给形参1
实参2的数据,会传递给形参2
不是所有的对象属性都是要传参的
有的对象属性,可以通过计算获取
例如,房屋摆放家具案例中的剩余面积,用总面积- 已摆放的家具面积