from语句

在整个应用程序里,只有三行语句,是一个最简短的WIN32的应用程序,但它的功能也是很有限,只是显示一个提示框,把一个字符串显示出来,其它什么事情也没有做。下面就来分析这三行语句了,别小看这三行语句,其实是隐藏着很多知识点在其背后。比如使用了三个关键字:from、import和None。其中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操作系统是使用C和C++开发的,因此要使用Win32的API接口,必须使用C语言的方式来调用系统的功能。另外操作系统的开发厂家也不可能提供所有其它语言的接口。

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

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

from语句

时间: 2024-10-10 05:35:58

from语句的相关文章

python基础之条件循环语句

前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python interprets non-zero values as True. None and 0 are interpreted as False. Python 判断非0的值为 True, 而None和0被认为是 False.注意这里的True和False首字母大写,Py

js中哪些语句在if语句中默认为真

结论:js中有一个函数是:Boolean(value)这个函数把一个value值转换成相应的boolean值. 当value为以下值是为true:1.任意的非空字符串 .2.任意的非0数字 而当value为以下值为false:1.空的字符串即("").2.0和NaN(Not a Number) .3.undefined 在if语句中写入上面的value,浏览器会自动调用Boolean(value)这个函数. 例如:if ("hello world"){ alert(

python学习笔记二:if语句及循环语句,断点,模块,pyc

if语句 注意:语句块中的内容要强制缩进,否则出错.IndentationError,缩进错误 所有代码,如果是顶级的,必须顶格写,前面不能有空格 if - : - elif - : - else: - while语句 while -: - else: - for语句 for i in range(10)--i默认0,步长默认1,最大为9 for i in range (0,2,10)--从0开始,步长为2,最大为8 for  i   in range(-): - else: - break--

17-4 delete-truncate语句-练习

--删除数据语句: --delete from 表名 where ... --delete语句如果不加where条件,表示将表中所有的数据都删除,加where条件后,会按照where条件进行删除. --删除TblStudent表中的所有数据, --自动编号并没有恢复到默认,仍然继续编号 delete from TblStudent --删除所有性别为'女',同时年龄小于20岁的 delete from TblStudent where tSGender='女' and tSAge<20 --删除

选择结构if语句和switch语句的区别

1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if(比较表达式2) { 语句体2; }else if(比较表达式3) { 语句体3; } ... else { 语句体n+1; } B:执行流程: 首先计算比较表达式1看其返回值是true还是false, 如果是true,就执行语句体1,if语句结束. 如果是false,接着计算比较表达式2看其返回值是true还是false, 如果是true,就执行语句体2,if语句结束. 如果是fals

java语言基础与go语言基础,if语句的区别

1.java if 语句 1,if语句 if (条件){ 语句: } if(条件){ 语句1: }else{ 语句2: } 2,多重if-else语句 if(条件1){ 语句1: }else if(条件2){ 语句2: }else{ 语句: } 2.go if语句 关于条件语句,需要注意以下几点: ? 条件语句不需要使用括号将条件包含起来(): ? 无论语句体内有几条语句,花括号{}都是必须存在的: ? 左花括号{必须与if或者else处于同一行: ? 在if之后,条件语句之前,可以添加变量初始

sqlserver数据库的sql语句使用

             T-SQL查询语句 1. tansact-SQL编程语言 美国国家标准协会(ANSI)和国际标准组织(ISO)为 SQL定义了标准,微软通过用Transact-SQL和ANSI-SQL兼容,Transact-SQL还包含了几种能够增强性能的扩展. T-SQL的组成:   数据定义语言(Date Definition Language)语句简称DDL语句 DDL语句用来建立数据库,数据库对象(create,alter,drop) create object_name al

SQL 数据库T-SQL语句查询

         SQL 数据库T-SQL语句查询 附加数据库的数据文件 查询表中种类是水果的出厂日期在201-04-01之后的 查询所有种类的总成本 以倒序的方式查询表中水果的成本 查询种类是蔬菜的并且价格在1-5之间 将product表中的名称,种类,出厂日期的数据保存在另一个名为product_new的表中,并查看 在products表和sales表中查询产品的名称.种类.成本.销售地点和销售价格. 在products表和sales表中查询销往海南的产品名称.种类.成本和销售价格. 查询年

学习mysql的笔记:mysql十大基本入门语句

学习mysql数据库,从最简单的十条入门语句开始.刚开始学习mysql,老师让我们用cmd控制台输入语句,而不是选择用工具输入,这是为了我们能够先熟悉mysql语句. 首先要先进入mysql,语句为:mysql -hlocalhost -uroot -p  然后回车,输入密码. C:\Users\Administrator>mysql -hlocalhost -uroot -p Enter password: ****** 成功进入的话会出现 Welcome to the MySQL monit

oracle sql语句运行效率

--当前执行sql语句 SELECT a.SID , a.SERIAL# , a.USERNAME , b.PARSE_CALLS , b.PARSING_SCHEMA_NAME , b.CPU_TIME / 1000000 , b.ELAPSED_TIME / 1000000 , b.DISK_READS , b.DIRECT_WRITES , b.BUFFER_GETS , a.event , b.sql_text , b.SQL_FULLTEXTFROM v$session a INNER