FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
您的足迹: C++的术语 Python概要
Python概要

1. 语言特点

  • 免费、开源

是FLOSS自由开放源代码之一。

  • 跨平台

除了与平台库相关的模块,可以移植到目前市面绝大多数操作系统平台。

  • 简单

一种简单主义思想的语言,没有那么多技巧。与Perl语言设计思想相反:

snippet.txt
Python: "There should be one-- and preferably only one --obvious way to do it."
Perl: "There's more than one way to do it."
  • 面向对象

支持面向对象编程。

  • 模块化

符合模块化设计思想。轻松编写功能独立的模块,也可以方便地导入第三方库。

  • 简洁

语法格式简洁,没有“{ }”,有严格的格式规范。

2. 开发环境

img

  • IDE
    • 交互式命令行。
    • PyCharm:商用,支持整套开发流程。
    • Eclipse + PyDev:满足基本开发需求。
  • 选择版本
    • 2.7:稳定,认可度高,目前仍在更新。
    • 2.6:redhat 6.x自带版本。
    • 3.x:不建议使用。标准变更较大,尚未走出混沌。
  • PyInstaller
    • 把脚本编译成可脱离Python环境的可执行程序。免费,跨平台。
  • GUI 图形用户界面
    • Tkinter:标准的Python GUI库。
    • wxPython:wxWindows开源的Pyhon接口。
    • JPython:Python脚本无缝接入Java类库。

3. 实例

引入第三方模块

Python导入第三方模块(Linux的.so或者Windows的.dll)。

主程序:

snippet.python
#! /usr/bin/env python
#coding: utf-8
 
import multiprocessing
from Tkinter import *
import add
 
### Global param
g_APPTitle = u"Hello World"
 
### App class
class MyApp:
	def __init__(self, parent):
		global g_APPTitle
		parent.title(g_APPTitle)
		self.parent = parent
 
### main
if __name__ == '__main__':
	multiprocessing.freeze_support()
 
	g_Root = Tk()
	g_MyApp = MyApp(g_Root)
 
	sta, val = add.Add(10, 20)
	print sta, val
 
	g_Root.mainloop()

引入第三方模块的子模块:

snippet.python
#! /usr/bin/env python
#coding: utf-8
 
import platform
from ctypes import *
 
### a Add b
def Add(a, b):
	state = True
	value = 0
	try:
		os_name = platform.system()
		os_name = os_name.lower()
		print os_name
		if os_name == "linux":
			dll = CDLL("./add_linux.so")
		elif os_name == "windows":
			dll = CDLL("./add_win.dll")
 
		value = dll.Add(a, b)
	except:
		state = False
	return state, value

案例源码:下载

执行shell命令

执行shell命令方法:

snippet.python
# 方法1
import subprocess
pSP = subprocess.Popen("ls -al", stderr=subprocess.STDOUT, stdout=subprocess.PIPE. shell=True, preexec_fn=None)
 
# 方法2
import os
os.system("ping 192.168.150.131")
 
# 方法2
import commands
(status, output) = commands.getstatusoutput("ls -al")
  • 方法1:异步执行:
  • 方法2和3:同步执行;


打赏作者以资鼓励:
移动端扫码阅读: