【Python学习】——类与对象(一)

一、类的定义和使用

  • 基本语法

class 类名

        类的属性(成员变量)

        类的行为(成员方法)

定义成员方法

def 方法名(self, 形参1,形参2...):  # 调用时self可以不传入

         方法体

class Student:
    name = None
    gender = None
    nationality = None
    age = None

    def say_hi(self):
        print(f"hello,my name is {self.name}")

    def say_hi2(self, msg):
        print(f"hello,my name is {self.name},{msg}")


stu = Student()
stu.name = "An yujin"
stu.say_hi()
stu.say_hi2("puppy puppy~")

 

  •  面向对象的编程

设计一个类,基于类去创建对象,并使用对象来完成具体的工作

二、类方法

  • 构造方法

Python类的构造方法:__init__()

  • 在创建类对象(构造类)的时候,会自动执行
  • 在创建类对象(构造类)的时候,将传入参数自动传递给__init__方法使用 
class Student:
    # 成员变量的声明可以省略
    name = None
    gender = None
    nationality = None
    age = None

    def __init__(self, name, gender, nationality, age):
        self.name = name
        self.gender = gender
        self.nationality = nationality
        self.age = age
        print("Student类创建了一个类对象")


stu = Student("yujin", "girl", "korean", "20")
print(stu.name)
print(stu.gender)
print(stu.nationality)
print(stu.age)

 

  • 魔术方法

__str__方法

直接print对象,输出的是内存地址。通过__str__方法,可以控制类转换为字符串的行为

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

    # __str__魔术方法
    def __str__(self):
        return f"name:{self.name}, age:{self.age}"


stu = Student("yujin", "20")
print(stu)

 

__lt__方法

直接对2个对象进行比较是不可以的,但是在类中发实现__lt__方法,即可完成小于符号(和大于符号)的比较

    # __lt__魔术方法
    def __lt__(self, other):
        return self.age < other.age


stu1 = Student("yujin", 20)
stu2 = Student("gauel", 22)
print(stu1 < stu2)

 

注:__le__方法可用于<=,>=的比较

__eq__方法

不实现eq方法,对象之间可以比较,但是是比较内存地址。不同对象的内存地址不同,输出一定是false。

实现了eq方法,就可以按照自己的想法来决定2个对象是否相等了。 

 # __eq__魔术方法
    def __eq__(self, other):
        return self.age == other.age
stu1 = Student("yujin", 20)
stu3 = Student("rei", 20)
print(stu1 == stu3)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值