关于Python的面向对象


本文是我第一个关于代码的文章作品,我会逐个解释介绍我所写的内容,尽量用一种通俗易懂的文字来阐述使得我的讲述便于大家理解。
PS:我以前一直觉得写此类文很麻烦,宁愿花时间去写小说或者研究游戏代码,也不想花很多时间去做一篇需要很严谨的文章。

面向对象

“面向对象”,到处都能听到这个词的解释。什么是对象,什么是面向对象,又怎么面向对象,这些到处都可以看到的各种定义我就不解释了。

对象(object)

具体解释对象是什么是一件比较麻烦的事。而实际上,在python中,没有什么不是对象。即你输入一个数字,它是int对象;在数字旁加上“ ’ ”(引号),它是str对象;再在前方加上一个“b”,它是一个bytes对象。

用print方法打印一个对象,即可看到它的样子。
试运行以下代码:

class A:
    pass

a = A()

print(a)
print(type(a))
print(A)

根据输入结果看来,其实很多对象样子是我们不想看到的样子。python的基本类型都可以直接打印看到结果,而其他对象的打印出来,我们看到的实际上是和html标签一样的<__main__.xxx object at 0x000001D3F3E2C8C8>,这就是对象,而它是什么对象,那就是紧跟着__main__.的xxx。
输出结果:

<__main__.A object at 0x000001D3F3E2C8C8>
<class '__main__.A'>
<class '__main__.A'>

第一个输出的,就是a这个变量所绑定的对象;
第二个输出的,是a的类型,为A类;
第三个输出的,是A类(这个A类,也是一个对象)。

因此,我们可以把对象进行分“类”,所属的类,就是对象分类的依据。而获取对象的办法,就是通过类实例化出一个对象:“()”。
如以上的a,通过类名A加括号的方式来实例化对象并绑定。

如果还不信,可以id()一下,看看对象在内存中存储的位置,没有加载的程序永远只是程序,程序跑起来了才有已经创建好的对象,此时才会占用内存。

类(class)

我用过这样一道题来考察过对对象的理解,其实很简单,但很容易出错:

class(object):
    def __init__(self, 价格: int, 名称: str):
        self.价格 = 价格
        self.名称 = 名称


class 手机():
    def __init__(self, 价格: int, 品牌: str, 名称: str):
        super().__init__(价格, 名称)
        self.品牌 = 品牌
        self.配件 = []

    def 搭配(self, 东西):
        self.配件.append(东西)
        self.价格 += 东西.价格


class 耳机():
    def __init__(self, 价格: int, 品牌: str, 名称: str):
        super().__init__(价格, 名称)
        self.品牌 = 品牌


class iphone(手机):
    def __init__(self):
        价格 = 9000
        品牌 = '苹果'
        名称 = 'iphone'
        super().__init__(价格, 品牌, 名称)


class Airpods(耳机):
    def __init__(self):
        价格 = 1000
        品牌 = '苹果'
        名称 = 'Airpods'
        super().__init__(价格, 品牌, 名称)


class 黑天鹅(耳机):
    def __init__(self)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒刷念路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值