自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Python3学习

写下自己对于python内置对象、高级特性和标准库的理解

  • 博客(7)
  • 收藏
  • 关注

原创 【标准库】collections的OrderedDict和Counter

上次提到了标准库collections中两个C语言实现的容器,由于本人对C语言并不算熟悉,因此无法解析源码,今天解析OrderedDict和Counter,当然它们也有C实现;这是一个链表,__slots__是类中的一个特殊属性,它应该是一个元组,如果一个类设置了该属性,那么这个类的实例只允许拥有元组中的实例属性便于我们更好地理解发生了什么,我们可以观察以下代码的输出:1、__module__,当前的对象属于哪个模块,很显然就在当前的模块,也就是__main__;

2023-12-18 18:53:10 783

原创 【标准库】collections中的deque和defaultdict

python的成功除了语言本身的设计非常受喜欢外,还有一个更大的原因是其开源库的繁荣,尤其是机器学习相关的库,但除此以外,python官方也开发了很多标准库,这些库有些是为了给我们提供原生语言不支持的功能,而有的是为了给我们提供一些高频函数和类的实现。最后再说一下什么是工厂函数,工厂函数简单来说就是生产实例的函数,list就是工厂函数,因为在调用list()的时候,实际上返回了list的实例,因此任何类本身严格来说都是工厂函数,本质上真正的工厂函数是类中的__new__魔术方法,它真实地创建了这个实例。

2023-12-16 14:37:46 929 1

原创 【魔术方法】实现C++中的cout

我们只需要在lshift中返回实例对象本身,也就是self,根据lshift的执行顺序是从左到右的特点,就可以正确打印了,endl其实没啥困难,无非是在lshift里面判断一下类型。我们首先需要观察cout语句的形式,cout作为起始,要传入输出流的内容用

2023-12-15 19:02:16 400

原创 【魔术方法】运算符重载

首先我们要弄清什么是运算符,运算符就是用在变量之间执行某种操作的符号,例如,+、-、*、/、==、

2023-12-15 18:50:53 317

原创 【内置方法】python中tuple、int和float

本文基于python3.11,落后版本的方法可能有所不同,tuple(元组)、int(整型)和float(浮点型)都是不可变对象,无法修改它们的值,且它们都是可哈希的,既然是不可变对象,那么它们的内置方法是不可能修改对象本身的,因此都不是修改器(注意在任何语言中float类型都是无法准确表示的,即使0.1这样一个简单的浮点数,计算机也不可能准确表示,我们都知道计算机是通过二进制来工作的,0.1的二进制表示是无穷长的,但0.5=2^(-1)、0.75=2^(-1)+2^(-2)是可以准确表示的。

2023-09-05 18:11:31 259

原创 【内置方法】python中dict

,一个键的hash值在同一个hash算法下是唯一的,这也是为什么dict中的key必须唯一,若不唯一会导致查询时不知道查询的是哪一个key,hash算法也不可逆,我们只有可能知道'china'的hash值是多少,但永远不知道hash值为1000的是什么键值,准确的说,在无限的数据面前,hash值为1000的键是无穷多的,因此可能造成hash坍塌,存在大量hash值相同的key会造成指向的位置变成一段序列,找到对应的key则还是需要扫描这一段序列,使性能下降。key必须唯一,value任意。

2023-09-04 01:13:35 161

原创 【内置方法】python中的list

其它方法都会改变list本身的值,append(value)在列表尾部添加一个元素value,pop()在列表尾部弹出一个元素(为什么说弹出,因为这个方法还会返回被删除的对象),还有两个更加通用的方法,remove(value)移除第一个值为value的对象,insert(index, object)在index索引(支持负索引)处插入object对象,其它元素索引向后瞬移一位,insert(-1, obj)和append(obj)实际上是完全等价的,copy()是浅拷贝一个list对象,

2023-09-02 18:33:50 285 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除