MyException - 我的异常网
当前位置:我的异常网» 编程 » from话语

from话语

www.MyException.Cn  网友分享于:2014-08-05  浏览:0次
from语句

在整个应用程序里,只有三行语句,是一个最简短的WIN32的应用程序,但它的功能也是很有限,只是显示一个提示框,把一个字符串显示出来,其它什么事情也没有做。下面就来分析这三行语句了,别小看这三行语句,其实是隐藏着很多知识点在其背后。比如使用了三个关键字:fromimportNone。其中from关键字和import关键字做成一个语句表达形式,它们的简单意思就是表示从某个模块(库)里导入模块顶层的一些对象。表现的形式如下:

from 模块(库)  import 对象

在这里相关语句为:

from ctypes import *

那么这行语句的意思就是从ctypes模块(库)里导入所有顶层的对象。星号(*)是表示所有对象,当然,也是可以指定特定名称的对象导入。比如下面的语句:

from ctypes import windll

这行语句表示就只导入windll对象。这种方式与星号(*)的区别是限制了从模块里导入的对象类型。如果一个模块里的代码比较多,就倾向使用指定对象名称导入,这样可以避免命名冲突。如果想使用比较简单,使用星号方式是比较方便好用。另外使用from形式导入时,跟直接使用import是有区别的。from形式表示从模块里拷贝顶层作用域里所有的对象到目前from语句所在作用域来。如果原来导入的模块发生了改变,from 形式拷贝的对象名称是不会改变的。这时就需要比较小心那些不断地改变的对象,最好不要使用from的形式了,而使用import的形式。在Python里可以导入很多类型的模块,比如Python写的模块文件,或者C写的符合Python调用接口的模块文件,又或者C++写的符合Python调用接口的模块文件。

ctypes

在这语句里是导入了ctypes库(模块),那么ctypes库是干什么用呢?简而言之,ctypes库就是用来帮助Python从源码里调用C语言写的动态连接库(DLL)。从一门语言调用另外一门语言是一个复杂的过程,那么为什么要调用呢?可能原因是以下几点:

1)系统模块是事实上的标准,无法自行开发。比如在Windows操作系统是使用CC++开发的,因此要使用Win32API接口,必须使用C语言的方式来调用系统的功能。另外操作系统的开发厂家也不可能提供所有其它语言的接口。

2)功能模块需要更高的效率。由于Python是动态语言、解释型语言,执行速度介于编译型语言(比如CC++)和完全动态解释语言的速度之间(比如Basic)。比如有一段算法计算非常大,要求性能非常高,就可以使用CC++语言来开发一个动态连接库,然后让Python来调用,就可以提高Python程序的整体执行性能。

3)以前使用CC++开发的旧模块,需要使用Python来调用,以便兼容和保护以前的资源。

文章评论

Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
鲜为人知的编程真相
鲜为人知的编程真相
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
为什么程序员都是夜猫子
为什么程序员都是夜猫子
每天工作4小时的程序员
每天工作4小时的程序员
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
总结2014中国互联网十大段子
总结2014中国互联网十大段子
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
程序员都该阅读的书
程序员都该阅读的书
程序员的鄙视链
程序员的鄙视链
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Java程序员必看电影
Java程序员必看电影
代码女神横空出世
代码女神横空出世
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
旅行,写作,编程
旅行,写作,编程
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
我是如何打败拖延症的
我是如何打败拖延症的
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
漫画:程序员的工作
漫画:程序员的工作
程序员和编码员之间的区别
程序员和编码员之间的区别
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
一个程序员的时间管理
一个程序员的时间管理
那些争议最大的编程观点
那些争议最大的编程观点
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
10个调试和排错的小建议
10个调试和排错的小建议
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
中美印日四国程序员比较
中美印日四国程序员比较
老程序员的下场
老程序员的下场
程序员必看的十大电影
程序员必看的十大电影
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
我的丈夫是个程序员
我的丈夫是个程序员
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
编程语言是女人
编程语言是女人
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有