
9 python进阶
9 python进阶
隨意的風
从事10+年的技术开发,结交天下软件研发朋友,共同探讨技术、共同进步。
展开
-
Python语言学习讲解一:【赋值、浅拷贝与深拷贝】
工作了十来年,第一次写blog,望有写错的地方,同仁及时指点出来。下面开始探究python语言的赋值、浅拷贝、深拷贝。*****python中的原子类型的数据不存在拷贝一说,使用的都是原内存地址的引用****** Python中关于对象复制有三种类型的使用方式【赋值】、【浅拷贝】与【深拷贝】一、【赋值】原创 2016-11-15 15:24:31 · 787 阅读 · 0 评论 -
Python详解(一):元类Metaclass
简单的讲,元类创建了Python中所有的对象。我们说Python是一种动态语言,而动态语言和静态语言最大的不同,就是函数和类不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个HelloWorld的class,就写一个helloworld.py模块:class HelloWorld(object): def helloworld(self): prin...原创 2019-08-16 17:33:52 · 298 阅读 · 0 评论 -
扩展Python模块系列----引用计数问题的处理***
Python Object的结构体定义包含一个引用计数和对象类型:#ifdef Py_TRACE_REFS/* Define pointers to support a doubly-linked list of all live heap objects. */#define _PyObject_HEAD_EXTRA \ struct _object *...原创 2019-08-16 17:09:46 · 508 阅读 · 0 评论 -
CPython PyTupleObject 接口分析
对象结构:typedef struct { PyObject_VAR_HEAD PyObject *ob_item[1];} PyTupleObject;常用接口:PyTuple_New:创建一个Tuple对象,参数为创建大小PyTuple_GetItem: 获取Tuple的某一个元素,参数为 ob_item的索引indexPyTuple_SetIte...原创 2019-08-16 15:30:49 · 1722 阅读 · 0 评论 -
Python单例模式-几种实现方式的及优化***
目录单例模式实现单例模式的几种方式1.使用模块2、使用装饰器3、使用类4、基于new方法的实现-推荐使用、简单5.基于metaclass方式实现相关知识单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,...原创 2019-08-20 09:56:36 · 386 阅读 · 0 评论 -
Windows 10 搭建 Django 环境(详细教程)-tree
目录1. Python 下载及安装2. 安装虚拟环境3. 安装 Django 及第三方库python 安装第三方库,超时报错--Read timed out.Windows10安装MySQL-python出错显示需要Microsoft Visual C++ 9.0解决方法MySQL_python-1.2.5-cp27-none-win_amd64.whl is...原创 2019-07-23 20:50:36 · 771 阅读 · 0 评论 -
PyObject_CallObject, PyObject_Call, PyObject_CallFunction使用例子
Examplestatic PyObject *g_callbackFunc = NULL;/** @Desp : Get the val from JSON data string by key* @in : char *buffer, char *key* @out : char* value* @ret : NULL* @example for buffer val...原创 2019-06-11 14:01:58 · 11824 阅读 · 1 评论 -
如何在C++中使用一个Python类-[PyImport_ImportModule、PyModule_GetDict、PyDict_GetItemString、PyObject_CallFuncti]
最近在做基于OpenCV的车牌识别, 其中需要用到深度学习的一些代码(Python), 所以一开始的时候开发语言选择了Python(祸患之源).固然现在Python的速度不算太慢, 但你一定要用Python来操作图像, 实现某些算法的时候, 效率就变得非常重要. 可惜的是, Python在大多数算法实现中, 由于其循环操作实在是太慢, 导致实现的算法效率非常之低.所以现在我要把深度学...原创 2019-06-11 11:02:53 · 8375 阅读 · 0 评论 -
Python的C扩展-学习总结
1. Python的C扩展其实只要你懂得C语言编程,给Python添加新的内置(build-in)模块将十分容易。这些扩展(extension)模块可以实现两种无法直接在Python中进行的操作:他们可以实现新的内置对象类型,以及可以调用C语言的库函数和进行系统调用。为了支持扩展,Python API定义了一个函数(functions)、宏命(macros)令和变量(variables)的...原创 2019-06-10 20:27:22 · 2960 阅读 · 0 评论 -
c++程序 调用和加载python模块和调用相关接口
VC工程的当前工作目录和.py文件所在目录最好一直。当.py文件和工程不在统一目录时,若要import.py文件,只需要在import之前增加python的搜索目录就可以了:#include "stdafx.h"#include <Python.h>#include <stdio.h>#include <iostream> using ...原创 2019-06-10 19:16:16 · 953 阅读 · 0 评论 -
Python 用ctypes观察Python对象的内存结构
对象的两个基本属性Python所有对象结构体中的头两个字段都是相同的:refcnt:对象的引用次数,若引用次数为0则表示此对象可以被垃圾回收了。 typeid:指向描述对象类型的对象的指针。通过ctypes,我们可以很容易定义一个这样的结构体:PyObject。本文只描述在32位操作系统下的情况,如果读者使用的是64位操作系统,需要对程序中的一些字段类型做一些改变。from ...原创 2019-05-30 18:01:35 · 1179 阅读 · 0 评论 -
Python高级编程之装饰器Decorator详解(上篇)***
目录一、先从一种情况开始看起1、装饰器decorator的由来2、添加额外功能的简单实现——非“装饰器”实现二、什么是装饰器——decorator1、什么是装饰器?——两个层面第一:从设计模式的层面上第二:从Python的语法层面上(其实第二种本质上也是第一种,只不过在语法上进行了规范化)2、装饰器的作用——两方面3、装饰器的使用场景三、装饰器的实现1、...原创 2019-04-09 21:09:08 · 520 阅读 · 1 评论 -
C/C++和python之间相互调用的讲解***
====================================================||欢迎讨论技术的可以相互加微信:windgs (请备注csdn+xx职业)====================================================||目录简述Python/CAPI简介C++调用API列表void Py_Initial...原创 2019-04-02 16:10:36 · 1131 阅读 · 0 评论 -
Python笔记(一)——C/C++调用python
最近在使用kbengin引擎在开发MMO手游,用了10多年的C++,python和C/C++之间的调用还一直没有时间好好学习下,之前只是做过永恒战士项目使用过python进行开发,但是也是存python开发,未涉及相关C++的调用。趁现在有机会学习就再网上查找了下相关资料,大致的学习下,进行参考把。原理清楚后,写起来就很得心应手了。#include <Python.h>#i...原创 2019-04-02 15:14:06 · 512 阅读 · 0 评论 -
Python笔记(二)——python调用C/C++模块
前一篇讲了简单的C/C++调用Python脚本模块(.py)。既然是用于诸多游戏程序的脚本语言,那肯定是缺不了互调(礼尚往来)。因此,本篇讲一个简单的python调用C/C++写的DLL模块,对Python进行功能扩展。这里写一个简单的例子,主要就为了了解下这么用Python来调用C/C++写的DLL库。好了,切入正题:首先,我是用VS2003建的一个DLL工程,将DLL工程属性里面的输出文...原创 2019-04-02 14:54:29 · 1408 阅读 · 1 评论 -
cpython-PyList_Append使用*
如果您事先知道列表的大小,通常可以更快地创建具有正确大小的列表并使用PyList_SetItem():PyObject * bugmaybe(PyObject *self, PyObject *args){ PyObject * trio=PyList_New(3); PyObject * otmp = PyFloat_FromDouble(1.2); PyList_SetIt...原创 2019-09-16 18:01:14 · 1506 阅读 · 2 评论