Python——类和对象

创建对象

对象又名为实例

语法:

对象名 = 类名()

实例方法/对象方法:

语法:

对象名.类中方法名()

类中定义函数时参数位置的self是指调用该函数的对象

若调用该函数的对象是obj   即此时self指的就是obj
同一个类创建的不同对象调用函数方法时的self也不同

添加和获取对象属性

属性即是特征

对象属性既可以在类外面添加和获取,也能在类里面添加和获取

类外面添加对象属性:
语法:

对象名.属性名 = 值

例如:

obj.width = 100
obj.height = 200

类里面获取对象属性:
语法:

self.属性名

魔法方法:

在Python中, _xx_()的函数叫做魔法方法,指的是具有特殊功能的函数

__init__():

__init__():  初始化对象(在定义类时定义此函数用来添加实例属性)

注意:

1.__init__()方法,在创建一个对象时默认被调用,不需要手动调用
2.__init__(self)中的self参数,不需要开发者传递,Python解释器会自动把当前的对象引用传递过去

带参数的__init__():  对不同的对象设置不同的初始化属性

语法:

def __init__(self,属性1,属性2):
           self.属性1 = 属性1
           self.属性2 = 属性2

传参:创建对象时传入参数

对象名 = 类名(参数1,参数2)

__str__():

__str__():   当使用print输出对象的时候,默认打印对象的内存地址,如果类定义了__str__方法,那么就会打印从在这个方法中return的数据

一般放置解释说明性质的文字,为了解释类的作用

__del__():

__del__():   当删除对象时,Python解释器也会默认调用__del__()方法  
删除对象时,执行__del__()方法里面的内容

示例代码


'''
class A():   # 创建类
    def p(self):   # 定义类中的函数
        print('我是类中的方法')
        print(self)            # <__main__.A object at 0x0000022AA6F97278>

obj = A()  # 创建对象
print(obj)   # <__main__.A object at 0x000001C2EC107278>
print(type(A))   # <class 'type'>
print(type(obj))  # <class '__main__.A'>

# 对象调用类中的方法
obj.p()    # <__main__.A object at 0x00000256398270B8>

obj_1 = A()
obj_1.p()   # <__main__.A object at 0x000002563992C438>

# 类外面添加属性
obj.width = 100
obj.height = 200
print(obj.width)
print(obj.height)

# 类里面获取对象属性
class B():
    # 定义__init__() 设置初始化属性
    def __init__(self):
        self.name = '我是属性name'
        self.age = '我是属性age'
    def p(self):
        print(f'类里面获取的属性self.width:{self.width}')   # 类里面获取实例属性
        print(f'类里面获取的属性self.height:{self.height}')
        print(f'类里面获取的属性self.name:{self.name}')
        print(f'类里面获取的属性self.age:{self.age}')
obj1 = B()   # 创建对象
# 添加实例属性
obj1.width = 200
obj1.height = 400
obj1.p()  # 调用方法

print('--------------------------------------')
class C():
    def __init__(self,width,height):
        self.width = width
        self.height = height
    def init_p(self):
        print(f'类里面获取的属性self.width:{self.width}')
        print(f'类里面获取的属性self.height:{self.height}')

objc = C(400,450)    # 创建不同对象时的属性值不同
objc1 = C(900,960)

objc.init_p()
objc1.init_p()


class Washer():
    def __init__(self,width,height):
        self.width = width
        self.height = height

    def __str__(self):
        return '这是初始化介绍,'+f'宽度属性{self.width},高度属性{self.height}'

    def __del__(self):
        print(f'{self.__class__}对象已经被删除')

washer = Washer(200,250)
print(washer);     # 打印时不是地址,是__str__()方法里面的内容
del washer



print('----------------------------------------')
#  烤地瓜
class SweetPotato():
    def __init__(self):
        self.cook_time = 0
        self.cook_static = '生的'
        self.cook_condiments = []
    def cook(self,time):
        self.cook_time += time  # 时间累加
        if  0 <= self.cook_time < 3:
            self.cook_static = '生的'
        elif 3 <= self.cook_time < 5:
            self.cook_static = '半生不熟'
 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/3eba73890e20d0c35effed04a2c7cec0.png)

![img](https://img-blog.csdnimg.cn/img_convert/dca7fe5fab3826bfa3467156f10719a2.png)

![img](https://img-blog.csdnimg.cn/img_convert/35b519caa0ce669ba6e129d778dc1768.png)

![img](https://img-blog.csdnimg.cn/img_convert/5b84d9c8761ad2e9e2b8753aaf671c35.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

![](https://img-blog.csdnimg.cn/img_convert/177541664209bf8489b519558a1114f5.jpeg)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值