我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python模块与包

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python模块与包

一、模块的定义与使用

1.1、模块的定义

  • Python中,模块在物理形式上表现为以.py 结尾的代码文件

  一个文件被看作一个独立的模块, 一个模块也可以被看作一个文件; 每个模块都有自己的名称空间。Pyhton允许”导入”其他模块以实现代码重用, 从而实现了将独立的代码文件组织成更大的程序系统。在一个模块顶层定义的所有变量都在被导入时成为了被导入模块的属性。

  • 一个python程序通常包括一个顶层文件和其他的模版文件

  顶层文件:包含了程序的主要控制流程
  模块文件:为顶层文件或其他模块提供各种功能性组件。模块首次导入(或重载)时,Python 会立即执行模块文件的顶层程序代码,而位于函数主体内的代码知道函数被调用后才执行。

1.2、导入模块

  在导入模块时只能使用模块名,而不能使用带.py 后缀的模块文件名
import语句,导入指定的整个模块,包括生成一个以模块名命名的名称空间

import module [ , module2 [,...moduleN]]建议一个 import 语句只导入一个模块
import module as module_alias

   from-import 语句, 常用于只导入指定模块的部分属性至当前名称空间

  from module import name1[ , name2 [, ...nameN]]  

  import 和 from 是可执行的, 类似于 def,他们可以嵌套在 if 测试中,出现于def 中等等。Python 执行到这些语句时才会对其进行解析,所有来自模块的属性仅在 import 语句执行后才能使用。

  import和 from 都是隐性赋值语句;import将整个模块对象赋值给一个变量名,from 将一个或多个变量名赋值给导入此模块中的同名对象。

In [1]: import requests     #导入整个requests模块
In [2]: dir(requests)       #查看requests模块所支持的方法
Out[2]: 
['ConnectTimeout',
 'ConnectionError',
 'DependencyWarning',
 'FileModeWarning',
 'HTTPError',
 'NullHandler',
 'PreparedRequest',
 'ReadTimeout',
 'Request',
 'RequestException',
 'Response',
 'Session',
 'Timeout',
 'TooManyRedirects',
 'URLRequired',
 '__author__',
 '__build__',
 '__builtins__',
 '__cached__',
 '__copyright__',
 '__doc__',
 '__file__',
 '__license__',
 '__loader__',
 '__name__',
 '__package__',
 '__path__',
 '__spec__',
 '__title__',
 '__version__',
 '_internal_utils',
 'adapters',
 'api',
 'auth',
 'certs',
 'codes',
 'compat',
 'cookies',
 'delete',
 'exceptions',
 'get',
 'head',
 'hooks',
 'logging',
 'models',
 'options',
 'packages',
 'patch',
 'post',
 'put',
 'request',
 'session',
 'sessions',
 'status_codes',
 'structures',
 'utils',
 'warnings']
In [3]: from bs4 import BeautifulSoup #从bs4模块中导入BeautifulSoup方法

1.3、import 工作机制

  • import 语句导入指定的模块时会执行三个步骤

1、找到模块文件:在指定的路径下搜索模块文件
2、编译成字节码:文件导入时就会编译,顶层文件.pyc 字节码文件在内部使用后会被丢弃,只有被导入的文件才会留下.pyc 文件。
3、执行模块的代码来创建其所定义的对象:模块文件中的所有语句会依次执行,从头到尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性。

  模块只有在第一次导入才会执行如上步骤,后续的导入操作只不过是提取内存中已加载的模块对象,reload()可用于重载加载模块。

1.4、模块的搜索路径

  Python 解释器在import模块时必须先找到对应的模块文件,主要有以下四个目录:

程序的主目录;

PYTHONPATH 目录(如果设置的此变量); 

标准链接库目录;
任何.pth 文件的内容(如果存在.pth 文件)

  这四个组合起来即为 sys.path 所包含的路径,python 会选择在搜索路径中的第一个符合导入文件名的文件。

In [6]: sys.path
Out[6]: 
['',                          #空字符串代表当前工作目录
 '/application/python36/bin',
 '/application/python36/lib/python36.zip',
 '/application/python36/lib/python3.6',
 '/application/python36/lib/python3.6/lib-dynload',
 '/application/python36/lib/python3.6/site-packages',
 '/application/python36/lib/python3.6/site-packages/IPython/extensions',
 '/root/.ipython']

1.4、包

  包用于将一组模块归并到一个目录中,此目录即为包,目录名位包名。包是一个有层次的文件目录结构,它定义了一个由模块和子包组成的应用程序执行环境;基于包,python 在执行模块导入时可以指定模块的导入路径。

wKioL1jrGwTByEdmAABmNyL9uKM832.png-wh_50

import dir1.dir2.mod1

要使用如图所示的 package1,则 py_pkg_mod 容器必须要在模块搜索路径中

import package1.mod1

包导入语句的路径内的每个目录内必须有__init__.py 文件; __init__.py 可以包含代码,但通常为空,仅用于扮演包初始化的挂钩、 替目录产生模块命名空间以及使用目录导入时实现 from *行为的角色。

1.5、模块的属性
 每个模块都有个名为__name__的内置属性,python 会自动设置该属性如果文件以顶层程序文件执行, 在启动时,__name__的值为”__main__”;如果是被导入,则__name__的值为模块名。
 可以在模块文件中检测自己的__name__属性,以之实现在执行时运行制定的代码或者进行自我测试。

def testFunc():
    print('Hello,there...')
if __name__=='__main__':
    testFunc()

1.6、发布python模块或程序

  • Python 模块、扩展和应用程序可以按以下几种形式进行打包和发布

  压缩文件(使用 distutils): windows 的 zip 文件和类 unix 的.tar.gz 文件;
  自动解包或自动安装可执行程序: windows 中的.exe 文件;
  自包含的, 不要求安装的预备运行可执行程序:
  windows 中的.exe 文件; unix 上带有一个小的脚本前缀的 ZIP 压缩文件等;
  平台相关的安装程序: windows 上的.msi 文件、 linux 上常见的.rpm、 class="lazy" data-src.rpm 等。
  • 使用 disutils 发布模块

  “发布”是指一个文件集合,这些文件联合在一起可使用distutils构建、打包和发布等创建好的发布可用于安装,也可用于上传到 PyPI 与他人分享。

  • 创建发布

  将各代码文件组织到模块容器中;准备一个README或者README.txt文件;而后在容器中创建setup.py 文件。

  在要发布的容器目录中执行”python setup.py sdist”命令。

from distutils.core  import setup        #setup.py中的代码示例
setup(
    name            ='hello_py',
    version         ='0.0.1',
    author          ='mypython',
    author_email    ='mypython@edu.com',
    py_modules      =['hello'],
    url             ='a.simple.com',
    description     ='print hello',
    
    )

获取帮助的方式:
  python setup.py --help
  python setup.py --help-commands: 所有可以使用的命令, 如 build, install
  python setup.py COMMAND --help: 获取特定命令的帮助
  python setup.py COMMAND --help-formats: 获取特定命令支持使用的格式

二、常用模块

  • OS 模块

目录: 

  chdir():  改变工作目录                chroot(): 设定当前进程的根目录

  listdir(): 列出指定目录下的所有文件名  mkdir(): 创建指定目录
  makedirs():创建多级目录                getcwd():返回当前目录下的文件信息
  rmdir():   删除目录                    removedirs(): 删除多级目录

文件: 

  mkfifo():创建管道        mknod(): 创建nod节点 

  remove():删除文件        unlink():取消链接 

  rename(): 重命名          stat():   返回文件状态信息

  symlink():创建符号链接    utime(): 更新时间戳
  tmpfile():创建并打开(w+b)一个新的临时文件

访问权限: 

  access(): 访问权限        chmod(): 修改权限

  chown(): 修改属主,属组  umask(): 设置默认权限模式
文件描述符:

  open(): 打开文件描述符

  read(): 读取文件 

  write():写文件

设备文件:

  mkdev():创建设备 

  major():主节点 

  minor():次节点

os.path: 跟文件路径相关
  basename(): 路径基名      dirname(): 路径目录名
  join(): 连接多个路径      split():返回dirname(),basename()元组
  splitext(): 返回(filename, extension)元组

文件信息: 

  getatime():获取访问时间 

  getctime():获取元数据修改时间

  getmtime():获取文件内容修改时间 

  getsize():  返回文件的大小

查询: 

  exists(): 判断指定文件是否存在       isabs(): 判断指定的路径是否为绝对路径

  isdir():  是否为目录                 isfile(): 是否为文件
  islink(): 是否符号链接               ismount(): 是否为挂载点
  samefile(): 两个路径是否指向了同一个文件
  • sys 模块

sys.argv 命令行参数 List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时 exit(0)
sys.version 获取 Python 解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout.write('please:') 进度条

val = sys.stdin.readline()[:-1]   #从键盘输入设置变量

In [5]: var=sys.stdin.readline()[:-1]
ls
In [6]: var
Out[6]: 'ls'

  • shutil高级的文件、文件夹、压缩包处理模块

shutil.copyfileobj(fclass="lazy" data-src, fdst[, length]) 将文件内容拷贝到另一个文件中,可以部分内容
shutil.copyfile(class="lazy" data-src, dst) 拷贝文件
shutil.copymode(class="lazy" data-src, dst) 仅拷贝权限。 内容、 组、 用户均不变
shutil.copystat(class="lazy" data-src, dst) 拷贝状态的信息, 包括: mode bits, atime, mtime, flags
shutil.copy(class="lazy" data-src, dst) 拷贝文件和权限
shutil.copy2(class="lazy" data-src, dst) 拷贝文件和状态信息
shutil.ignore_patterns(*patterns)
shutil.copytree(class="lazy" data-src, dst, symlinks=False, ignore=None) 递归的去拷贝文件
shutil.rmtree(path[, ignore_errors[, onerror]]) 递归的去删除文件
shutil.move(class="lazy" data-src, dst) 递归的去移动文件

shutil.make_archive(base_name, format,...) 创建压缩包并返回文件路径,例如:zip、tar

  base_name:压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
     如: www =>保存至当前路径
     如: /Users/wupeiqi/www =>保存至/Users/wupeiqi/
  format: 压缩包种类, “zip”, “tar”, “bztar”, “gztar”
  root_dir: 要压缩的文件夹路径( 默认当前目录)
  owner: 用户, 默认当前用户
  group: 组, 默认当前组
  logger: 用于记录日志, 通常是 logging.Logger 对象
#shutil对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的。
   
import zipfile 
# 压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log') 
z.write('data.data') 
z.close()
# 解压 
z = zipfile.ZipFile('laxi.zip', 'r') 
z.extractall()
z.close()



# 压缩
tar = tarfile.open('your.tar','w')
tar.add('/Users/bbs.zip', arcname='bbs.zip')
tar.add('/Users/cmdb.zip', arcname='cmdb.zip')
tar.close()
# 解压
tar = tarfile.open('your.tar','r')
tar.extractall() # 可设置解压地址
tar.close()

  • xml 处理模块

  xml是实现不同语言或程序之间进行数据交换的协议,跟json 差不多,但 json 使用起来更简单; xml的格式如下,就是通过<>节点来区别数据结构的。

<?xml version='1.0'?>
<menu>
    <user id="0">
        <name>Alexia</name>
        <age>23</age>
        <sex>Female</sex>
    </user>
</menu>
  • ConfigParser 模块

  用于生成和修改常见配置文档。

[english]               #配置文件样式
greeting = Hello
[french]
greeting = Bonjour
[files]
home = /usr/local
# simple interpolation:
bin = %(home)s/bin
  • yaml 模块

  与 json 相似、 同样有键值。 主要用来处理日期和时间这样的数据类型。

load()将yaml 字符串转换为python 数据;

dump()相反,将python 数据转换为yaml字符串。

name:                  #yaml文件样式
  first: James
  last: McIntyre
dates:
  birth: 1828-05-25
  death: 1906-03-31
details:
  bearded: true
  themes: [cheese, Canada]
books:
  url: http://www.gutenberg.org/files/36068/36068-h/36068-h.htm
poems:
  - title: 'Motto'
    text: |
      Politeness, perseverance and pluck,
      To their possessor will bring good luck.
  - title: 'Canadian Charms'
    text: |
      Here industry is not in vain,
      For we have bounteous crops of grain,
      And you behold on every field
      Of grass and roots abundant yield,
      But after all the greatest charm
      Is the snug home upon the farm,
      And stone walls now keep cattle warm.
  • hashlib 模块

  用于加密相关的操作,3.x里代替了md5 模块和 sha 模块,主要提供 SHA1,SHA224,SHA256, SHA384,SHA512,MD5算法。python还有一个hmac模块,它内部对我们创建 key和内容再进行处理然后再加密散列消息鉴别码,简称HMAC,是一种基于消息鉴别码 MAC(Message Authentication Code) 的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥 K 来鉴别消息的真伪;
一般用于网络通信中消息加密,前提是双方先要约定好 key,就像接头暗号一样,然后消息发送把用 key 把消息加密,接收方用key + 消息明文再加密,拿加密后的值跟发送者的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了。

In [7]: import hmac

In [8]: h= hmac.new(b'1213',b'45678')

In [9]: print(h.hexdigest)
<bound method HMAC.hexdigest of <hmac.HMAC object at 0x7f3441dd1048>>

In [10]: print(h.hexdigest())
da66020747fb19dec23ba317f759d2de
  • Subprocess 模块

#生成新进程, 连接输入/输出/错误管道。

  >>> retcode = subprocess.call(["ls", "-l"])

#执行命令, 如果命令结果为 0, 就正常返回, 否则抛异常

>>> subprocess.getstatusoutput('ls /bin/ls')

#接收字符串格式命令, 返回元组形式, 第 1 个元素是执行状态, 第 2 个是命令结果

>>> subprocess.getoutput('ls /bin/ls')

#接收字符串格式命令, 并返回结果

>>> res=subprocess.check_output(['ls','-l'])

  #执行命令,并返回结果,注意是返回结果,不是打印,下例结果返回给res

底层都是封装的 subprocess.Popen

poll()        #检查子进程是否已终止。返回returnCode
wait()        #等待子进程终止。返回returnCode属性。
terminate()   #杀掉所启动进程
communicate() #等待任务结束

subprocess.Popen() #打开子进程

args:shell 命令,可以是字符串或者序列类型( 如: list, 元组)
bufsize:指定缓冲。0 无缓冲,1 行缓冲,其他 缓冲区大小,负值 系统缓冲
stdin, stdout, stderr: 分别表示程序的标准输入、输出、错误句柄
preexec_fn:Unix平台下有效,用于指定可执行对象,它将在子进程运行之前被调用
close_sfs:windows 平台下,close_fds 被设置为 True时,则新创建的子进程将不会继承父进程的输入、输出、错误管道。所以不能将 close_fds 设置为 True 同时重定向子进程的标准输入、 输出与错误。
shell:同上
cwd: 用于设置子进程的当前目录
env: 用于指定子进程的环境变量。env = None,子进程的环境变量将从父进程中继承。
startupinfo与 createionflags只在windows下有效将被传递给底层的 CreateProcess()函数,用于设置子进程的一些属性,如:主窗口的外观,进程的优先级等等。
  • logging

  用于便捷记录日志且线程安全的模块。

logging.basicConfig(filename='log.log',                                  #设置日志文件
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',#日志格式
datefmt='%Y-%m-%d %H:%M:%S %p',                                          #时间戳
level=10)                                                                #日志等级
logging.debug('debug') logging.info('info') logging.warning('warning')
logging.error('error') logging.critical('critical') logging.log(10,'log')

日志等级:

CRITICAL = 50 
FATAL = CRITICAL 
ERROR = 40 
WARNING = 30
WARN = WARNING 
INFO = 20 
DEBUG = 10 
NOTSET = 0

Python 使用 logging 模块记录日志涉及四个主要类:


logger 提供了应用程序可以直接使用的接口;
handler 将(logger 创建的)日志记录发送到合适的目的输出;
filter 提供了细度设备来决定输出哪条日志记录;
formatter 决定日志记录的最终输出格式。

  logger 每个程序在输出信息之前都要获得一个 Logger。Logger 通常对应了程序的模块名,比如聊天工具的图形界面模块可以这样获得它的 Logger:

LOG=logging.getLogger(”chat.gui”)
LOG=logging.getLogger(”chat.kernel”)

Logger.setLevel(lel):指定最低的日志级别,低于lel的级别将被忽略。

Logger.addFilter(filt)、Logger.removeFilter(filt):添加或删除指定的 filter

Logger.addHandler(hdlr)、 Logger.removeHandler(hdlr):增加或删除指定的 handler

可以设置的日志级别:

 Logger.debug()、

 Logger.info()、 

 Logger.warning()、 

 Logger.error()、 

 Logger.critical():

  handler 对象负责发送相关的信息到指定目的地。Python 的日志系统有些 Handler 可以把信息输出到控制台,有些 Logger 可以把信息输出到文件,还有些 Handler 可以把信息发送到网络上。

logging.StreamHandler
    向类似与 sys.stdout 或者 sys.stderr 的任何文件对象(file object)输出信息。
logging.FileHandler
    用于向一个文件输出日志信息。 不过 FileHandler 会帮你打开这个文件。
logging.handlers.RotatingFileHandler
    类似于上面的 FileHandler,但是它可以管理文件大小。当文件达到一定大小之后,它会自动将当前日志文件改名,然后创建 一个新的同名日志文件继续输出。
logging.handlers.TimedRotatingFileHandler
    与RotatingFileHandler 类似,但它是间隔一定时间就自动创建新的日志文件。重命名的过程与 RotatingFileHandler 类似,不过新的文件不是附加数字,而是当前时间。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python模块与包

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python模块与包

一、模块的定义与使用1.1、模块的定义Python中,模块在物理形式上表现为以.py 结尾的代码文件  一个文件被看作一个独立的模块, 一个模块也可以被看作一个文件; 每个模块都有自己的名称空间。Pyhton允许”导入”其他模块以实现代码重
2023-01-31

Python 模块与包

一、模块 模块就是一个包含了python定义和申明的文件,文件名就是模块的名字加上.py的后缀/模块的分类:    1、使用python编写的py文件    2、已被编译位共享库或者DLL或C或者C++的扩展    3、包好一组模块的包 
2023-01-30

python -模块与包

********************************模块与包*****************************一、模块在 Python 中,一个.py文件就称之为一个模块(Module)。•大大提高了代码的可维护性;•编
2023-01-31

【Python3】Python模块与包

一、模块导入1. 定义Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你
2023-01-31

Python基础——模块与包

在Python中,可以用import导入需要的模块、包、库、文件等。 把工作路径导入系统路径 import os#os是工作台import sys#sys是系统sys.path.append(os.getcwd())sys.path写脚本文
2023-01-31

Day5-python中的模块与包

1.什么是模块 最常见的场景,一个模块就是包含一组功能的python文件,例如module.py,模块名是module 可以使用import module,四个通用类别: 1、使用python编写的
2023-01-31

Python-模块与包的管理

一.模块1.模块实质上就是一个以.py结尾的文件,可以被其他py文件调用;2.使用模块- 大大提高了代码的可维护性;- 编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用;3.导入模块时,会去python的默认搜索路径中寻找;-
2023-01-31

Go 模块与包

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《Go 模块与包》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~问题内容刚刚开
Go 模块与包
2024-04-04

python之基础篇(八)——模块与包

防伪码:忘情公子著python中的模块  将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块。  模块在物理形式上表现为以.py结尾的代码文件:    一个文件被看作一个独立的模块,
2023-01-31

Python之异常处理、模块与包

MarkdownPad Document程序中错误分成两种语法错误:过不了Python解释器逻辑错误异常处理什么是异常处理Python解释器检测到错误,触发异常,在发生异常时捕捉异常,如果捕捉成功则进入另外一个处理分支,是程序不会崩溃,这就
2023-01-31

Python中包与模块的示例分析

这篇文章主要为大家展示了“Python中包与模块的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中包与模块的示例分析”这篇文章吧。什么是 Python 的包与模块包的定义:简
2023-06-29

Python的os包与os.path模块怎么用

这篇文章主要介绍了Python的os包与os.path模块怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、os常用方法1.获取当前路径 os.getcwd()# co
2023-06-29

python之模块和包

1 模块化一般来说,编程语言中,库,包,模块是同一种概念,是代码组织方式 python中只有一种模块对象类型,但是为了模块化组织的便利,提供了一个概念: 包模块(module):指的是python的源代码文件 包(package):指的是模
2023-01-31

详解Python模块化--模块(Modules)和包(Packages)

目录引言Python Modules模块导入模块①导入整个模块②导入模块中的特定函数③导入模块中的所有函数给导入的模块一个别名单独运行模块加速模块加载Python Packages包引用包(Package)中的模块引用包(Package)中
2022-06-02

Python使用scapy模块发包收包

前言众所周知,我们每天上网都会有很多数据包需要发送,然后处理在接受在发送,这样一个循环往复的过程这里就显示了很多数据包的发送接收数据,那什么是包呢?下面一起看看 包( packet )是网络通信传输中的数据单位,一般称之为数据包,其主要由源
2022-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录