Python-第二阶段

对象

初识对象

存储数据有多种方式,如列表、字典等等,如果不统一会显得很乱,对象可以解决这个问题
例如制作这样一张记录表

信息学生登记表
姓名NONE
性别NONE
国籍NONE
籍贯NONE
年龄NONE
# 设计一个类(设计一张表)
class Student:
    name = None             # 记录学生姓名
    gender = None           # 记录学生性别
    nationality = None     # 记录学生国籍
    native_place = None     # 记录学生籍贯
    age = None              # 记录学生年龄

# 创建一个对象(打印一张登记表)
stu_1 = Student()

# 对象属性进行赋值(填写表单)
stu_1.name = "周杰轮"
stu_1.gender = "男"
stu_1.nationality = "中国"
stu_1.native_place = "山东省"
stu_1.age = 18

# 获取记录信息
print(stu_1.name,end=" ")
print(stu_1.gender,end=" ")
print(stu_1.nationality,end=" ")
print(stu_1.native_place,end=" ")
print(stu_1.age)
# 由此数据成功记录子在此对象中

在这里插入图片描述

定义类和创建对象

"""
class 类名称:
    类属性  定义类中的变量(成员变量)
    
    类行为  定义类中的函数(成员方法)
"""
# 创建出一个具体对象
# 对象 = 类名称()

类的成员方法

class traveller:
    name = None
    age = None

# 记录行为,类中的函数叫做方法
# 定义方法:def 方法名(self,形参1,形参2,...)
# self标示类对象自身的意思,写上才能访问类成员,self会被python自动传入
    def say_hi(self):
        print(f"你好,我是{self.name},初次来到这个世界,请多多指教")

tra = traveller()
# 通过点使用成员变量和成员方法
tra.name = "风之旅人"
tra.say_hi()

tra2 = traveller()
tra2.name ="澹台诗吟"
tra2.say_hi()

在这里插入图片描述
构造方法

方法:__init__() 称之为构造方法
可以实现:
创建对象(构造类)的时候*自动执行*
创建对象(构造类)的时候会把参数自动递给__init__() 方法使用
把赋的值都传给定义好的成员变量
class traveller:
    name:None
    age:None
    time:None  # 后面定义了则这里可以省略

    def __init__(self,name,age,time):
        self.name = name
        self.age = age
        self.time = time   # 接收参数且赋值,若没定义外加定义

stu = traveller("艾希","24","2023年4月6日14:24:22")# 创建对象
# 执行时构造方法会自动执行

魔术方法

python类内置的方法,如构造方法
这些内置的类方法有各自的特殊功能,称之为魔术方法

_str _字符串方法

class student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
stu=student("索尔",3927)
print(stu)
print(str(stu)) #直接输出只能得到地址

在这里插入图片描述
定义字符串方法

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}"
    
stu=student("索尔",3927)
print(stu)
print(str(stu))

_ lt _方法

小于符号比较方法

class student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    # 定义比__lt__比较方法
    def __lt__(self, other):
        return self.age < other.age

stu1 = student("索尔",3927)
stu2 = student("艾希",25)
print(stu1 > stu2)
print(stu1 < stu2)

在这里插入图片描述

_ le _比较方法
可用于>= 和 <= 两种运算符
逻辑和 _ lt _一样

_ eq _方法
用于== 运算符,逻辑和上两种一致

总结

方法功能
_ init _构造方法,可用于创建类对象的时候设置初始化行为
_ str _用于实现类对象转字符串的行为
_ lt _用于2个类对象进行小于或大于比较
_ le _用于2个类对象进行小于等于或大于等于比较
_ eq _用于2个类对象进行相等比较

封装

一种将现实世界中的事物封装到程序中的思想

私有成员
私有成员变量:变量名以_ _ 开头(两个下划线)
私有成员方法:方法名以_ _开头
私有方法无法直接被累对象使用,私有变量无法赋值,也无法获取值
在这里插入图片描述
无法被类对象使用,但可以被其他成员使用

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值