首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python必备高级知识点学习(一)

Python中一切皆对象

和Java相比,Python的面向对象更加彻底。

函数和类也是对象,是python的一等公民。

代码和模块也可以称之为对象。

python中的类也是对象,类可以理解为模板,根据这个模板去生成我们的对象,可以动态修改类的属性。

何为一等公民?

可以赋值给一个变量

可以添加到集合对象中

可以作为参数传递给函数

可以当做函数的返回值 (生成器应用)

type、object、class之间的关系

类是由type来生成的一个对象,object是所有类都要继承的最顶层的一个基础类,type也是一个类,同时也是一个对象。

看代码片段一:

代码片段二:

可以看到,类是由type来生成的一个对象。

上述代码建议反复阅读练习。

Python中常见的内置类型

首先说明对象的三个特征:

身份:也就是地址,通过id()函数查看地址

类型:int、str等

值:每个对象都有自己的值

常见内置类型:

None(全局只有一个),Python解释器在启动时会用None生成一个None对象。

可以看到a,b是指向同一个对象(id相同)。

数值类型:int float complex(复数) bool。

迭代类型:可用for进行遍历

序列类型:list、bytes、range、tuple、str、array 等

映射类型:dict

集合类型:set、frozenset

上下文管理器:with语句

其他:class、实例 等等等。

Python中的魔法函数

问:什么是魔法函数?

答:双下划线开头,双下划线结尾的这些函数,通常称之为魔法函数。

例如:

image.png

一般魔法函数不要自定义,使用 Python 提供的即可。

使用 Python 提供的魔法函数,为了增强类的特性。

代码:使用魔法函数之前

代码:使用魔法函数之后

可以看到这个魔法函数的功能。

定义了这个魔法函数后,实例化后的对象就隐含的变为可迭代对象(iterable)。

for循环其实是要拿到一个对象的迭代器,迭代器是需要实现这个方法才会有迭代器特性,Python语法会做一些优化,如果拿不到迭代器,就会尝试去对象中找这个方法,如果有的话就会调用这个方法,一次一次直到将数据取完。这是python语言本身解释器会完成的功能。

魔法函数调用不需要显示调用,解释器会隐式调用。

Python的数据模型

魔法函数是Python数据模型的一个概念而已,因为网络上大家喜欢称之为魔法函数。

Python数据模型会增强对象的特性。

魔法函数增强了company对象的特性。

因为魔法函数很多,类似的魔法函数请大家自行去网上查找,并查看用法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181029G1XL4R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券