Python中类的基本使用和常用魔法函数

往期文章给大家介绍了Python中的类、对象、属性、行为等概念,感兴趣的伙伴可以前往阅读。本期文章介绍一下如何定义和使用这些东西和简单谈一下Python中内置的魔法函数。看官,请随我来。。。。。。

一、定义类及其成员

​ 类的定义严格说有3种方式,各个方式略有差别。可以根据需求灵活使用,但是推荐使用第3种方式。Why?我只能说------经验。

# 方式1:
class 类名:
	# 属性(和定义变量一样)
	# 行为(和定义函数一样,注意:第一个形参要写self)

# 方式2:
class 类名():
	# 属性(就和定义变量一样)
	# 行为(和定义函数一样,注意:第一个形参要写self)
	
# 方式3:
class 类名(opject):
	# 属性(就和定义变量一样)
	# 行为(和定义函数一样,注意:第一个形参要写self)



# 温馨提示:object是所有类的父类, 所有的类都直接或者间接继承自object。后面聊到继承就清楚了可以先记忆格式。
	

二、使用类的成员

​ 说到使用大概思路就是“没有先创建,存在后调用”。在使用前先和大家聊一个Python的内置属性self。它在函数中使用,用于区分不同对象的。

类内调用可以使用self. 的方式。

class man(opject):
    # 1. 定义类的属性.
        self.name = '张三'

    # 2. 定义类的行为
    def walk(self):
        print('饭后走一走, 能活九十九!')
        
        
        
# 温馨提示:谁调用self就是谁。

类外调用需要先创建类的对象再使用 对象名. 的方式调用。

# 1.创建类的对象
# 格式:对象名 = 类名()
m1 = man()

# 2.对象名. 的方式调用。
	# 2.1 调用属性(并在控制台打印)
	print(f'姓名: {m1.name}')
	# 2.2 调用方法
	m1.walk()

三、使用常用的魔法函数

3.1 初始化对象属性的函数

在创建对象的时候, 会被自动调用, 一般用于给对象初始化一些属性值。

# 1.定义汽车类
class Car():
    # 用__init__()初始化属性值  带参数的 常用
    def __init__(self, color=None, number=None):
        # 类内定义属性并赋值
        self.color = color
        self.number = number
    # 定义show()函数在类内部调用属性
    def show(self):
        print(f'颜色:{self.color} 轮胎数:{self.number}')


if __name__ == '__main__':
    # 创建c1对象 并传参
    c1 = Car('黑色',4)
    #对象调用show()函数
    c1.show()
    

# 打印结果为:颜色:黑色 轮胎数:4

3.2 字符串方式表示对象的函数

​ 当输出语句直接打印对象的时候, 会自动调用该魔法方法, 默认打印的是地址值, 无意义, 一般会改为: 打印该对象的各个属性值。

# 1. 定义汽车类, 属性: 品牌, 价格.
class Car():
    # 定义init, 初始化属性.
    def __init__(self, brand, price):
        self.brand = brand  # 品牌
        self.price = price  # 价格

    # 行为
    def run(self):
        print('汽车会跑!')

    # 魔法方法, str
    def __str__(self):
        # return '我是str魔法方法'
        return f'品牌: {self.brand}, 价格: {self.price}'

   
  
  
 # 在main函数中测试调用.
if __name__ == '__main__':
    # 2. 创建汽车类对象.
    c1 = Car('大*蜂', 999999999)  # 创建对象时, 自动调用了: init魔法方法
    # 3. 直接打印c1对象
    print(c1)  # 默认调用了 __str__() 魔法方法.
    
    
 # 打印结果为  品牌: 大*蜂, 价格: 999999999

3.3 删除对象的函数

​ 当手动删除对象时或者文件执行结束后, 该函数会被自动调用。

# 1. 定义汽车类, 属性: 品牌, 价格.
class Car():
    # 定义init, 初始化属性.
    def __init__(self, brand, price):
        self.brand = brand  # 品牌
        self.price = price  # 价格

    # 行为
    def run(self):
        print('汽车会跑!')

    # 魔法方法, str
    def __str__(self):
        # return '我是str魔法方法'
        return f'品牌: {self.brand}, 价格: {self.price}'

    # 魔法方法, del
    def __del__(self):
        print(f'对象 {self} 被删除了!')
  
  
  
 # 在main函数中测试调用.
if __name__ == '__main__':
    # 2. 创建汽车类对象.
    c1 = Car('大*蜂', 999999999)  # 创建对象时, 自动调用了: init魔法方法
    # 3. 直接打印c1对象
    print(c1)  # 默认调用了 __str__() 魔法方法.
    
    # 4. 删除c1对象, 看看结果.
    del c1
    
    
 # 打印结果为  品牌: 大*蜂, 价格: 999999999
             对象c1被删除了!
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值