该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

具体的构造方法 PyInt_FromLong

这个方法的定义

PyObject *

PyInt_FromLong(long ival)

{

register PyIntObject *v;

/* MARK: 如果, 值在小整数范围内, 直接从小整数对象池获取得到对象 */

#if NSMALLNEGINTS + NSMALLPOSINTS > 0

if (-NSMALLNEGINTS ival & ival NSMALLPOSINTS) {

/* MARK: small_ints是什么后面说 */

v = small_ints[ival + NSMALLNEGINTS];

// 引用+1

Py_INCREF(v);

/* 这里先忽略, 计数 */

#ifdef COUNT_ALLOCS

if (ival >= 0)

quick_int_allocs++;

else

quick_neg_int_allocs++;

#endif

// 返回

return (PyObject *) v;

}

#endif

// 如果free_list还不存在, 或者满了

if (free_list == NULL) {

// 新建一块PyIntBlock, 并将空闲空间链表头部地址给free_list

if ((free_list = fill_free_list()) == NULL)

// 如果失败, 返回

return NULL;

}

// 从free_list分出一个位置存放新的整数

/* Inline PyObject_New */

// 使用单向链表头位置

v = free_list;

// free_list指向单向链表下一个位置

free_list = (PyIntObject *)Py_TYPE(v);

// 初始化对象, 类型为PyInt_type, 值为ival

PyObject_INIT(v, &PyInt_Type);

v->ob_ival = ival;

// 返回

return (PyObject *) v;

}

注意这里的Py_TYPE()方法, 在我们第一篇文章里面有提到, 不知道的回去复习下对象的数据结构

#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)

简而言之:

1. 先判断数值是否是小整数, 是的话从小整数对象池里面直接返回

(这个池固定大小, 下一点讲)

2. 如果不是, 从通用整数对象池里面取一个, 初始化返回

(如果这时候通用整数对象池还不存在或者已经满了, 新建一个池加入维护. 通用整数对象池后面讲)

int定义源码 python_【图片】Python 源码:int【西安网星软件吧】_百度贴吧相关推荐

  1. [附源码]计算机毕业设计Python+uniapp基于Android的网店系统i7581(程序+源码+LW+远程部署)

    [附源码]计算机毕业设计Python+uniapp基于Android的网店系统i7581(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置 ...

  2. python 网站 源码_在线浏览美图源码,附带python源码

    源码介绍 本源码由@香谢枫林 开发,首页图片做了浏览器窗口自适应,最大化占满PC浏览器和移动浏览器的窗口,并且防止出现滚动条. 源码截图 美图源码1 美图源码2 功能介绍 首页图片设置了4个点击功能区 ...

  3. 计算机操作培训图片,【图片】计算机学习之旅【汇编吧】_百度贴吧

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 从汇编语言课程设计2开始说起 --------------------------------------------- 我们先看一下课程设计2的主要任务 ...

  4. python破解百度网盘提取码_百度云提取码获取工具下载-获取百度云提取码下载v1.1 最新绿色版-西西软件下载...

    百度云提取码获取工具是一款小巧轻便的获取百度云提取码的工具,只需输入百度云链接然后轻轻一点,就能够快速准确地得到网盘链接的提取码了.有需要的朋友快来西西下载体验吧!] 使用说明 手头没有Win7 环境 ...

  5. 抓取网络源码python_使用Python进行网络抓取的新手指南

    抓取网络源码python 有很多很棒的书可以帮助您学习Python,但是谁真正读了这些A到Z? (剧透:不是我). 接下来是我的第一个Python抓取项目指南. 假定的Python和HTML知识很少. ...

  6. php动漫随机图源码,随机图片API源码

    下列代码保存任意文件名的 php 文件 header('Cache-Control:no-cache,must-revalidate'); header('Pragma:no-cache'); hea ...

  7. 简书python_使用 Python 爬取简书网的所有文章

    01 抓取目标 我们要爬取的目标是「 简书网 」. 打开简书网的首页,随手点击一篇文章进入到详情页面. 我们要爬取的数据有:作者.头像.发布时间.文章 ID 以及文章内容. 02 准备工作 在编写爬虫 ...

  8. 莫烦python讲得好差_【图片】《莫》短篇【vore吧】_百度贴吧

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这次是大粗长的更新 岚呆呆地看着面前突然出现的白虎,白虎的伤口还在滴血,滴在岚的身上."小狼,我带你去一个好玩的地方."说完,白虎就张 ...

  9. .netMVC实现图片打码和图片局部打码

    已录制视频~点击查看 使用语言框架:C# .net framefork4.8 MVC框架 编辑器:vs2019 实现原理:图片中每一个范围内,比如20px20px范围内的r g b 的颜色平均值覆盖原 ...

最新文章

  1. 10个省时间的 PyCharm 技巧
  2. R语言图形用户界面数据挖掘包Rattle:加载UCI糖尿病数据集、并启动Rattle图形用户界面、数据集变量重命名,为数据集结果变量添加标签、数据划分(训练集、测试集、验证集)、随机数设置
  3. Google要推输入法 是战略布局还是战术需要?
  4. mysql 按照指定字段拼接_mysql 根据某个字段将多条记录的某个字段拼接成一个字段...
  5. 断代、新生、创未来-Zoomla!逐浪CMS2 x3.9.6全面发布...
  6. Basic4IOS B4I开发原生iOS,Visual Studio中编程
  7. 台式计算机usb口不识别鼠标,电脑USB接口不能识别鼠标键盘怎么办
  8. 数论系列 求证:设自然数a,b互质,则不能表示成ax+by(x,y为非负整数)的最大整数是ab-a-b
  9. hiber+spring继续找bug
  10. 5.18 对表格按行进行排序 [原创Excel教程]
  11. 2019河南对口升学高考试卷计算机专业课,2019河南对口升学高考试卷计算机专业课-9页word资料...
  12. 某cpws - ciphertext加密与数据解密
  13. MuseScore入门教程(三、添加声部)
  14. Unity 摄像机切换镜头
  15. 初学者入门:认识STM32单片机
  16. 模型剪枝经典论文解读:《Learning Efficient Convolutional Networks through Network Slimming》
  17. 常用网址-2023整理
  18. 计算机专业需要用独显吗,集显 or 独显 我的程序用哪个必须由我定
  19. 如何规划自己的职业生涯
  20. BearPi-HM_Nano开发板“护花使者”案例

热门文章

  1. 微信公众号运营助手,可以在手机上回复粉丝留言
  2. 关于DS12C887 以外部RAM方式访问
  3. 【 Vue 】暗黑模式切换
  4. 微信小程序下载二进制流图片并转base64位图为png格式
  5. 飞桨领航团武汉长沙回顾|识别皮肤病,一秒记笔记,AI还有哪些惊喜?
  6. 陈松送:22个免费发布视频的平台
  7. 南开大学教授“段子手式”简介,网友:笑着笑着突然“破防”了!
  8. cocos2d-x小游戏——飞机大战
  9. MQTT-Eclipse paho mqtt重连机制
  10. win10 安装 GPU版TensorFlow