现在的情况是我已经在我的系统中安装了python2.7以及ipython和其他我经常用的库。现在我需要在安装python3.5的解释器以及相应版本的ipython。
1. 安装python3.5.1
直接去官网下载后安装到默认路径下。我安装的路径为:
1 | C:\Users\xy\AppData\Local\Programs\Python\Python35-32 |
在这路径下可以看到python3.5的所有,为了与之前的python2.7分开,我将python重命名为python3.exe
现在的情况是我已经在我的系统中安装了python2.7以及ipython和其他我经常用的库。现在我需要在安装python3.5的解释器以及相应版本的ipython。
直接去官网下载后安装到默认路径下。我安装的路径为:
1 | C:\Users\xy\AppData\Local\Programs\Python\Python35-32 |
在这路径下可以看到python3.5的所有,为了与之前的python2.7分开,我将python重命名为python3.exe
python中类中并没有像C++中的public、private等关键字来定义类成员的访问权限(也就是所谓的访问控制符),但是python中也是有私有和公有变量的,他们使用特殊的变量名称来实现隐藏效果的。
python通过下划线作为变量的前缀来指定特殊变量:
_xxx
:不能通过from import *
导入到当前空间中__xxx__
:python 内定的名称__xxx
:私有变量名 相当于C++中的private
关键字的作用。于是我自己写了个小例子理解了一下python的私有变量的大概机制,先上例子:
在C++中添加SitesMap完工.
新增了些测试,所有测试全部通过。。
下面开始搞python了,希望会快一些!
.,——..
/ `"
ノ \
ノ \
| /\ /\ |
| |
\ (人) /
….—\ _/———.
|” ‘ “ ..,-' ‘|
' ̄ ̄ ̄\ / ̄ ̄ ̄'
| |
\ |’ ̄\` |
\ \ /
\ \_/
\__、\
这次组会之所以汇报KMCLib的原理,其中一个重要的原因是我想趁这个机会把看得东西进行总结,以免以后忘记了能够拿回来PPT快速回忆起来重要的东西。所以为了能够让下面的人听懂我在讲什么特地用python写了个绘制三维网格图的脚本,帮我节省了不少时间。不多扯了,进入主题吧。
三维网格主要是用来描述三维晶格的,因为KMCLib是一个可以模拟一维到三维的KMC模拟库,因此想要绘制三维图还是要结束matplotlib库的plot3d。同时还要配合着python的itertools
提供的product
和combinations
函数,方便坐标的操作。
先倒入要用的库,然后创建figure对象和axes对象:
1 | # -*- coding: utf-8 -*- |
首先是三维网格的框架,先上一个效果图吧:
看到KMCLib中在python中直接使用c++的函数,不禁又让我开始联想这是为什么,于是我就自己写个小测试看看swig是怎么封装函数的。
先定义两个C++函数:1
2
3
4
5// file: temp.h
int add(int a, int b);
double showg();
为了能够将C++的类映射到目标语言,swig使用目标语言自动生成一个代理类(Proxy Class)来讲真正的C++类封装在里面,并通过使用一些accessor函数来使其看起来和用C++类一样的效果。
举个例子:
我有如下C++的类:1
2
3
4
5
6
7
8class Foo
{
public:
Foo();
~Foo();
int bar(int x);
int x;
};
代理类只是一种思想,可以用C++本身来实现一个代理类封装自己的类: