python语法-面向对象(构造方法、魔术方法)

python语法-面向对象(构造方法、魔术方法)

1.构造方法:

"""
构造方法:
python类可以使用:__init__()方法,称之为构造方法。
可以实现:
-在创建类对象时,会自动执行。
-在创建类对象时,将传入参数自动传递给__init__方法使用。
"""


# 演示使用构造方法对成员变量进行赋值
class Student:
    # 当具有构造方法时,可以省略成员变量的书写(下面三行注释)
    # name = None
    # age = None
    # tel = None
    def __init__(self, name, age, tel):
        self.name = name
        self.age = age
        self.tel = tel
        print("Student类创建了一个类对象")


stu = Student("周杰伦", 31, "18500006666")
print(stu.name)
print(stu.age)
print(stu.tel)

练习案例:
python语法-面向对象(构造方法、魔术方法)_第1张图片
案例解析:

"""
案例解析:学生信息录入
"""


class Student:
    name = None
    age = None
    site = None

    def __init__(self, name, age, site):
        self.name = name
        self.age = age
        self.site = site
        print("该学生类对象创建成功!")


students = []
for num in range(10):
    print(f"当前录入第{num + 1}位学生信息,总共需录入10位学生信息")
    name = input("请输入学生姓名:")
    age = int(input("请输入学生年龄:"))
    site = input("请输入学生地址:")
    student = Student(name, age, site)
    students.append(student)
    print(f"学生{num + 1}信息录入完成,信息为:【学生姓名:{student.name};年龄:{age};地址:{site}】")

print("录入成功!")

2.魔术方法:

"""
魔术方法:
python的内置方法各有各自特殊的功能,称之为魔术方法,主要的魔术方法如下:
    __init__:   构造方法
    __str__:    字符创方法
    __lt__:     小于、大于符号比较
    __le__:     小于等于、大于等于符号比较
    __eq__:     ==符号比较
"""


class Student:
    name = None
    age = None

    def __init__(self, name, age):
        self.name = name
        self.age = age

    # __str__魔术方法(用于输出对象内容)
    def __str__(self):
        """
        如果不写str魔术方法,则直接print(类对象)会返回地址,不会返会对象内容
        :return: print(类对象)可以调用此方法,返回对象的相关内容
        """
        return f"Student类对象,name:{self.name},age:{self.age}"

    # __lt _ 魔术方法(小于比较方法)
    def __lt__(self, other):
        """
        可同时完成:小于符号和大于符号两种比较
        :param other: 另一个类对象
        :return: True or False
        """
        return self.age < other.age


    # __le__ 魔术方法(小于等于比较方法)
    def __le__(self, other):
        """
        可用于:<=、>=两种比较运算符
        :param other: 另一个类对象
        :return: True or False
        """
        return self.age <= other.age

    # __eq__ 魔术方法(等于比较方法)
    def __eq__(self, other):
        """
        可用于 == 比较运算符
        :param other: 另一个类对象
        :return: True or False
        """
        return self.age == other.age

# 测试
stu1 = Student("周杰伦", 31)
stu2 = Student("凌俊杰", 36)
print(stu1)
print(str(stu1))
print(stu1 < stu2)
print(stu1 > stu2)
print(stu1 <= stu2)
print(stu1 >= stu2)
print(stu1 == stu2)

参考内容:
学习python基础第一阶段-有感而发
python语法-面向对象(类的基本使用)
黑马程序员-python基础

你可能感兴趣的:(Python,python,开发语言)