Python
fitzzhang
毕业于国防科学技术大学,拥有丰富的搬砖经验,熟练掌握各种搬砖姿势
展开
-
python编程的中文问题
字符编码问题是每个程序员必定会遇到的,同样,python的中文问题一直是一个非常令人头疼的问题,本文将介绍Python中涉及到中文细节问题。建议在阅读这篇文章之前,先前往字符编码详解这篇文章了解相关字符编码的原理细节。str和Unicode在Python中有两种默认的字符串:str和Unicode:str字符串本质上是一个字节流,是原字符经过编码之后的一个个字节转载 2016-06-15 16:09:06 · 5233 阅读 · 0 评论 -
python 脚本通用优化技巧
不知不觉用python已经一年半有余,学而不思则罔,决定花些时间好好总结下python脚本中的一些通用优化技巧,让自己在工作中少走点弯路。有些优化技巧并不只限于python,为了方便,一起写在本文中。原创 2017-12-26 13:44:14 · 2112 阅读 · 0 评论 -
浅谈Python C扩展
很多时候,我们需要写Python的C扩展,例如为了提高速度,用一些C的库等等。本文首先整理了python调用C扩展以及在C中调用python的方法;然后重点分析了CPython API中的引用计数问题。 在python应用中,为了对性能进行优化,我们常常需要写python的C扩展,将一些关键代码用C进行重写以提高性能;同时,我们也可以用在C中调用python的方法,例如写回调函数等。不管是p原创 2018-01-31 00:03:26 · 19312 阅读 · 4 评论 -
python调用C++之pybind11入门
python调用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,这些方法有繁有简,而pybind11的优点是对C++ 11支持很好,API比较简单,现在我们就简单记下Pybind11的入门操作。1. pybind11简介与环境安装pybind11是一个轻量级的只包含头文件的库,它主要是用来在已有的 C++代码的基础上做扩展,它的语法原创 2018-01-06 14:38:14 · 48564 阅读 · 12 评论 -
Python模块搜索路径
最近在学习python的C++扩展(pybind11),写完一个扩展模块之后,想要在自己的环境中以后都能自动导入这个模块,而不用手动去添加路径(修改sys.path)应该怎么弄?以前最开始学习Python的时候看过这块内容,然而时间长了总会记忆不清,就再回顾了一遍。 概括来说,Python的自动搜索路径是这样的:程序的根目录PYTHONPATH环境变量设置的目录标准库的目录任何能原创 2018-01-06 13:21:33 · 16991 阅读 · 2 评论 -
python slots初探
1. slots的用法1.1 基本用法之前学习python的时候,知道使用slots能够节省内存,然而却没有在实际项目中使用过,而且也不清楚为什么能够节省内存?能够节省多少内存?记忆总是那么脆弱,那么干脆来个彻底的探索,并记录之。 首先,我们看看slots的基础用法:class A(object): __slots__ = ['name', 'attr'] d原创 2017-12-07 20:27:14 · 1539 阅读 · 0 评论 -
VS2015编译python 3.6.4源码
用了很久python, 最近决定在windows下编译python的源代码,还是遇到了几个坑,花了几个小时==谨记此文,希望为后来者避开这些坑。首先,我们从官网下载python 3.6.4的源代码,选择Gzipped source tarball 或者 XZ compressed source tarball然后,我们解压开源码,进入到PCbuild目录,里面有VS的工程文件pcbuild...原创 2018-01-23 23:54:24 · 2907 阅读 · 0 评论