一、类的成员方法
#1.设计一个类
class Student:
name=None
age=None
sex=None
#2.创建一个对象
stu_1=Student()
#3.对象进行赋值
stu1.name='Jack'
stu1.age=19
stu1.sex='man'
#4.获取对象中记录的信息
print(stu1.name)
print(stu1.age)
print(stu1.sex)
二、类和对象
#1.设计一个闹钟类
class Clock:
id=None
price=None
def ring(self):
import winsound
winsound.Beep(2000,3000)
#2.构建闹钟对象让其真正开始工作
clock1=Clock()
clock1.id='21344'
clock1.price=14
print(f"闹钟id是{clock1.id},闹钟价格是{clock1.price}")#必须加上clock1. !!!易错
clock1.ring()
面向对象编程:
设计类,基于类创建对象,并使用对象来完成具体的工作
三、构造方法
写法:__init__()
可实现:
创造类对象(构造类)时,会自动执行
创造类对象(构造类)时,将传入参数自动传递给__init__()方法使用
class Student:
# name=None
# age=None
# tel=None
def __init__(self,name,tel,age):#记得把成员变量写入括号内
self.name=name
self.tel=tel
self.age=age
print('Student类创建了三个对象')
stu=Student("周杰伦",31,"198782928354")
print(stu.age)
print(stu.tel)
print(stu.name)
运行结果:
构造方法使用的注意事项:
1. __init__ 前后有两个下划线
2.构造方法也是成员方法,不要忘记在参数列表中写上self
def __init__(self,变量1,变量2....)
3.在构造方法内定义成员变量,需要写上self关键字
四、魔术方法
1. __str__方法:控制类转化为字符串的行为
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return f"Student类对象,name={self.name},age={self.age}"
student=Student('周杰伦',13)
print(student)
print(str(student))
2. __lt__方法(注意是l不是i):大、小于符号比较方法
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __lt__(self,other):
return self.age<other.age#必须对同一种对象进行比较
stu1=Student('周杰伦',13)
stu2=Student('周ziyan',11)
print(stu1<stu2)
print(stu1>stu2)
注:1.必须对同一种对象进行比较
2.传入参数有一个是other,表示另外一个用于比较的类对象
必须加上other!!!
3.__le__方法:大于等于、小于等于的比较(基本和lt一样)
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __le__(self,other):
return self.age<=other.age#必须对同一种对象进行比较,记得加=号
stu1=Student('周杰伦',13)
stu2=Student('周ziyan',11)
print(stu1<=stu2)
print(stu1>=stu2)
注:不能比较==
4.__eq__方法:比较是否相等
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __eq__(self, other):
return self.age==other.age#必须对同一种对象进行比较
stu1=Student('周杰伦',10)
stu2=Student('周ziyan',10)
print(stu1==stu2)