需要注意的是,在python里面没有私有成员,所以也是没有get,set方法,全是公有成员。
__init__
(构造方法)定义一个学生类,然后这个学生类具有学生的基本信息,比如,学号,姓名,性别,年龄,然后这个学生具有eating方法,这个方法会向屏幕打印,“I have eating”的语句。
现在根据上述需求进行代码编写。
定义类的代码, 这里主要需要注意的是,普通成员变量的定义方法,需要通过None进行初始化操作,然后还有python中的构造方法的写法,__init__
通过这个方法进行构造方法,然后self,相当于c++里面的this指针
class Student:
num = None
age = None
name = None
sex = None
def __init__(self, num, age, name, sex):
self.num = num
self.age = age
self.name = name
self.sex = sex
def eating(self):
print(self.name + " I have eating")
生成对象进行检验测试,这里演示的是,在python中如何定义对象。
if __name__=="__main__":
student1 = Student(1, 23, "lihua", '男')
student1.eating()
student2 = Student(2, 25, "zhangsan", '男')
student2.eating()
运行结果
__str__
字符串方法class Student:
def __init__(self, name, age):
self.name = name
self.age = age
if __name__=="__main__":
stu = Student("李华", 11)
print(stu)
print(str(stu))
运行结果
__str__
之后,使用这个__str__
后相当于,是java里面的toString方法。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}"
if __name__=="__main__":
stu = Student("李华", 11)
print(stu)
print(str(stu))
运行结果
__lt__
小于符号比较方法这里演示python中自定义的,小于符号的编写
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __lt__(self, other):
return self.age < other.age
if __name__=="__main__":
stu1 = Student("李华", 11)
stu2 = Student("张三", 12)
print(stu1 > stu2)
print(stu1 < stu2)
运行结果 一般情况下对象之间不可以直接进行对比,但是可以通过编写对比规则来进行对比。
__eq__
比较运算符实现方法演示代码,这里通过重载等于方法,来进行对两个对象的是否相等进行判断功能。
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __eq__(self, other):
return self.age == other.age
if __name__=="__main__":
stu1 = Student("李华", 11)
stu2 = Student("张三", 12)
print(stu1 == stu2)
print(stu1 != stu2)
运行结果
__le__
小于等于比较符号方法这个就交给大家来演示了,就是上面的两个的结合。