更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加
一、简介
类由下面两部分组成:
1、类的属性,称之为成员变量
2、类的行为,称之为成员方法。
注意:函数是写在类外的,定义在类内部的,是方法。
语法:
c1ass 类名称:
成员变量
def 成员方法(self,参数列表):
成员方法体
对象=类名称()
self的作用:表示类对象本身,只有通过self,成员方法才能访问类的成员变量。出现在形参列表中,但是不占用参数位置,不需要传值。
成员方法:
def 方法名(self,形参1,.....·,形参N):
方法体
注意:self关键字是成员方法定义的时候,必须填写的。用来表示类对象自身,成员方法中想要访问类的成员变量,必须使用self。构造方法也是成员方法,不要忘记在参数列表中提供:self。
参考案例:
#定义有参的构造函数
def __init__(self,name,age,height,weight,education):
self.name=name
self.age = age
self.height = height
self.weight = weight
self.education = education
对象:
类只是一种程序内的“设计图纸”(模型),需要基于图纸生产实体(对象),才能正常工作这种套路,称之为:面向对象编程。
语法:对象=类名称()
参考案例:
#使用类
stu_01=Student("小李",21,178,141,"本科")
stu_01.self_say("考入哈佛研究生")
私有成员变量和方法
定义规则:
成员变量和成员方法以"__"开头(2个下划线),即可完成私有设置。在类中仅提供内部使用的属性或方法。
#定义私有成员变量
__salary=None
#定义私有成员方法
def __salar(self):
print(f"大家好,我是{self.name},年龄:{self.age},我的工资是:{self.__salary}")
二、魔术方法
内置的类方法,都有各自功能。
案例:__str__字符串
#定义字符串
def __str__(self):
return f"类对象内容为:name:{self.name},age:{self.age},height:{self.height}" \
f",weight:{self.weight},education:{self.education}"
#测试字符串
stu_03=Student("小李",21,178,141,"本科")
# 返回类型:<class '__main__.Student'>,内容是:类对象内容为:name:小李,age:21,height:178,weight:141,education:本科
print(f"返回类型:{type(stu_03)},内容是:{stu_03}")
案例:__le__ 小小于等于
#定义__le__小于等于
def __le__(self,other):
return self.age<=other.age
stu_03=Student("小李",21,178,141,"本科")
stu_04=Student("小明",2,178,141,"本科")
#True
print(stu_03<=stu_04)
>不实现eq方法,对象之间可以比较,但是是比较内存地址,也即是:不同对象==比较一定是Flse结果。
>实现了_q_方法,就可以按照自己的想法来决定2个对象是否相等了。
更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。