Python代码在实际应用中的方案简介

开发 后端
Python代码的功能可以判断在一个文件夹内是否存在你所需要的某个文件,如果你的文件是被删除或者移走时Python代码给用户提示。以下就是对Python代码的相关实际应用方案的介绍。

Python代码在实际应用中还是比较简捷的。给计算机语言一族在计算机语言实际应用带来一些好处,下面就简单的说明一下在Python代码标号中所对应代码中的注释处的详细介绍。

1. 判断字符串的长度加上PyStringObject本身的大小(即整个变长对象PyStringObject的实际大小)后, 是否超过系统限制的最大大小. 书上的Python旧版代码中仅判断size > PY_SSIZE_T_MAX, 也就是没有考虑对象自身的大小, 是不完善的.

2. 当需要分配的内存超过系统限制的上限时, 抛出异常PyExc_OverflowError, 即溢出.书上的Python代码旧版代码没有抛出异常.

3. 对于长度为0的空串(即"", 而非NULL), 若nullstring已经被初始化, 则返回nullstring. 这是intern机制的一部分. 书上的Python旧版代码没有对nullstring增加引用计数.

4. 对于长度为1的字符串, 若字符表中该字符对象已经初始化, 则返回该字符对象. 这是intern机制的一部分. 书上的Python代码旧版代码没有对该字符对象增加引用计数.

5. 若申请内存空间失败, 则调用PyErr_NoMemory()处理. 书上的Python旧版代码中没这一部分.

6. 使用Py_MEMCPY代替直接使用memcpy. 贴一下Py_MEMCPY的代码:

 

  1. [Include/pyport.h]  
  2. /* Py_MEMCPY can be used instead of memcpy in cases 
    where the copied blocks  
  3. * are often very short. While most platforms have 
    highly optimized code for  
  4. * large transfers, the setup costs for memcpy are
     often quite high. MEMCPY  
  5. * solves this by doing short copies "in line".  
  6. */  
  7. #if defined(_MSC_VER)  
  8. #define Py_MEMCPY(target, source, length) do { \  
  9. size_t i_, n_ = (length); \  
  10. char *t_ = (void*) (target); \  
  11. const char *s_ = (void*) (source); \  
  12. if (n_ >= 16) \  
  13. memcpy(t_, s_, n_); \  
  14. else \  
  15. for (i_ = 0; i_ < n_; i_++) \  
  16. t_[i_] = s_[i_]; \  
  17. } while (0)  
  18. #else  
  19. #define Py_MEMCPY memcpy  
  20. #endif  

 

看注释应该就明白了, Py_MEMCPY是为跨平台优化而提供的一个宏. 因为在有些平台上, 调用mempcy的代价比较高, 所以对于小数据量的拷贝就原地展开成循环. 那Python代码觉得哪些平台需要这样的优化呢? 看到_MSC_VER了吧, 这个是M$的C编译器特有的宏, 看来, 需要特别优化的就是Windows下了.

【编辑推荐】

  1. Python 配置文件的实际应用解析
  2. Python安装配置的具体步骤的相关介绍
  3. python 编程语言在操作文件编码格式的应用
  4. Python 中文乱码问题的分析的具体方案介绍
  5. Python创建mysql的数据库连接池实际操作方案简介
责任编辑:佚名 来源: 博客园
相关推荐

2010-03-18 10:45:33

Python Djan

2010-03-23 17:53:46

Python递归文件

2010-03-31 17:40:15

Oracle SELE

2009-12-02 19:51:54

PHP Switch语

2010-03-19 14:59:00

python Stri

2010-03-16 09:20:25

Python时间

2010-03-17 12:37:51

Python定时器

2010-03-17 15:58:08

Python环境

2010-03-12 08:59:40

Python代码

2010-03-23 14:54:27

Python目录文件

2010-03-17 14:42:09

Python 文件

2010-03-23 13:30:36

Python VIM

2010-03-24 18:39:21

Python unic

2010-03-16 10:00:37

Python函数

2010-03-17 16:27:39

Python矩阵转置

2010-04-08 18:33:46

Oracle VARR

2010-03-16 16:47:25

Python数组

2010-03-19 17:15:43

2010-03-03 17:52:31

Python线程同步

2010-03-17 13:14:00

Python Libr
点赞
收藏

51CTO技术栈公众号