python---小技巧
转自:http://www.cnblogs.com/vamei/archive/2012/11/06/2755503.html
import模块
在Python经常使用import声明,以使用其他模块(也就是其它.py文件)中定义的对象。
1) 使用__name__
当我们编写Python库模块的时候,我们往往运行一些测试语句。当这个程序作为库被import的时候,我们并不需要运行这些测试语句。一种解决方法是在import之前,将模块中的测试语句注释掉。Python有一种更优美的解决方法,就是使用__name__。
下面是一个简单的库程序TestLib.py。当直接运行TestLib.py时,__name__为"__main__"。如果被import的话,__name__为"TestLib"。
def lib_func(a):return a + 10
def lib_func_another(b):return b + 20 if __name__ == '__main__':test = 101print(lib_func(test))
我们在user.py中import上面的TestLib。
import TestLib print(TestLib.lib_func(120))
你可以尝试不在TestLib.py中使用if __name__=='__main__', 并对比运行结果。
2) 更多import使用方式
import TestLib as test # 引用TestLib模块,并将它改名为t
比如:
import TestLib as t print(t.lib_func(120))
from TestLib import lib_func # 只引用TestLib中的lib_func对象,并跳过TestLib引用字段
这样的好处是减小所引用模块的内存占用。
比如:
from TestLib import lib_func print(lib_func(120))
from TestLib import * # 引用所有TestLib中的对象,并跳过TestLib引用字段
比如:
from TestLib import * print(lib_func(120))
查询
1) 查询函数的参数
当我们想要知道某个函数会接收哪些参数的时候,可以使用下面方法查询。
import inspect print(inspect.getargspec(func))
2) 查询对象的属性
除了使用dir()来查询对象的属性之外,我们可以使用下面内置(built-in)函数来确认一个对象是否具有某个属性:
hasattr(obj, attr_name) # attr_name是一个字符串
例如:
a = [1,2,3] print(hasattr(a,'append'))
2) 查询对象所属的类和类名称
a = [1, 2, 3] print a.__class__ print a.__class__.__name__
3) 查询父类
我们可以用__base__属性来查询某个类的父类:
className.__base__
例如:
print(list.__base__)
使用中文(以及其它非ASCII编码)
在Python程序的第一行加入#coding=utf8,例如:
#coding=utf8 print("你好吗?")
也能用以下方式:
#-*- coding: UTF-8 -*- print("你好吗?")
以上2中方式终端输出如下(乱码):
浣犲ソ鍚楋紵
如果希望终端输出的也是中文字,则使用以下方式:
#coding=utf8 a=u"你好吗?" b=a.encode("gbk") print b
表示2进制,8进制和16进制数字
在2.6以上版本,以如下方式表示
print(0b1110) # 二进制,以0b开头 print(0o10) # 八进制,以0o开头 print(0x2A) # 十六进制,以0x开头
如果是更早版本,可以用如下方式:
print(int("1110", 2))print(int("10", 8))print(int("2A", 16))
注释
一行内的注释可以以#开始
多行的注释可以以'''开始,以'''结束,比如
''' This is demo '''def func():# print somethingprint("Hello world!") # use print() function# main func()
注释应该和所在的程序块对齐。
搜索路径
当我们import的时候,Python会在搜索路径中查找模块(module)。比如上面import TestLib,就要求TestLib.py在搜索路径中。
我们可以通过下面方法来查看搜索路径:
import sys print(sys.path)
我们可以在Python运行的时候增加或者删除sys.path中的元素。另一方面,我们可以通过在shell中增加PYTHONPATH环境变量,来为Python增加搜索路径。
下面我们增加/home/vamei/mylib到搜索路径中:
$export PYTHONPATH=$PYTHONPATH:/home/vamei/mylib
你可以将正面的这行命令加入到~/.bashrc中。这样,我们就长期的改变了搜索路径。
脚本与命令行结合
可以使用下面方法运行一个Python脚本,在脚本运行结束后,直接进入Python命令行。这样做的好处是脚本的对象不会被清空,可以通过命令行直接调用。
$python -i script.py
安装非标准包
Python的标准库随着Python一起安装。当我们需要非标准包时,就要先安装。
1) 使用Linux repository (Linux环境)
这是安装Python附加包的一个好的起点。你可以在Linux repository中查找可能存在的Python包 (比如在Ubuntu Software Center中搜索matplot)。
2) 使用pip。pip是Python自带的包管理程序,它连接Python repository,并查找其中可能存在的包。
比如使用如下方法来安装、卸载或者升级web.py:
$pip install web.py
$pip uninstall web.py
$pip install --upgrade web.py
如果你的Python安装在一个非标准的路径(使用$which python来确认python可执行文件的路径)中,比如/home/vamei/util/python/bin中,你可以使用下面方法设置pip的安装包的路径:
$pip install --install-option="--prefix=/home/vamei/util/" web.py
3) 从源码编译
如果上面方法都没法找到你想要的库,你可能需要从源码开始编译。Google往往是最好的起点。
转载于:https://www.cnblogs.com/saryli/p/5044360.html
python---小技巧相关推荐
- 收藏喜+1!值得使用的100个Python小技巧
目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...
- 快收藏!整理了 100 个 Python 小技巧
作者:小F 来源: 法纳斯特 目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习. ...
- python hist函数_虎哥的python小技巧放送之绘制统计图(2)
先放出第一期让大家回顾一下上次的内容 虎哥的python小技巧放送之绘制统计图(1) 第一期主要给大家讲了一些图形设置的东西.这一次开始正式带大家画图~ 折线图:折线图可以通过matplotlib中的 ...
- 3分钟学会python_3分钟学会一个Python小技巧
Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串. datetime 分别提供了两个方法 strp ...
- 一些你可能不知道的 Python 小技巧!
[CSDN 编者按]Python 风头正盛,未来一段时间内想必也会是热门编程语言之一.因此,熟练掌握 Python 对开发者来说极其重要,说不定能给作为开发者的你带来意想不到的财富. 作者 | Seb ...
- python小技巧:一步步教你用Python实现
python小技巧:一步步教你用Python实现2048小游戏 https://www.meipian.cn/2xywlpbv https://www.meipian.cn/2xywhexo http ...
- 不藏了!分享100个Python小技巧!!
目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...
- 惊了惊了,三分钟学会七个Python小技巧(建议收藏)
前言 有很多小可爱再入门的路上越走越远......这次分享一下简单的小技巧重新让你爱上Python啦. Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就 是不断 ...
- Python小技巧:富比较方法的妙用,__lt__、__le__、__eq__、__ne__、__gt__、__ge__。。。
前言 这里是Python小技巧的系列文章.这是第二篇,富比较方法的妙用. 在 Python中,富比较方法共6个,如下表所示: 见名知意,富比较主要用于比较. 富比较方法 使用 释义 释义 object ...
- 100个Python小技巧!帮你节省很多头发
目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手.你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等. ...
最新文章
- ios android安全性分析,Android与iOS的对比分析及Android安全技术的设计与实现
- 推特800赞:图网络论文实现大合集,70多篇分门别类,从未如此全面 | 已过1k星...
- 网络配置_Linux网络环境配置
- 【Android Gradle 插件】ProductFlavor 配置 ( applicationId 配置 | SdkVersion 相关配置 | version 应用版本配置 )
- SQLite Insert 语句(http://www.w3cschool.cc/sqlite/sqlite-insert.html)
- codis 部署和测试
- 张朝阳:我什么都有,但我就是很痛苦
- UVA307 Sticks小木棍
- wringPi 初始化GPIO 为上拉_玩转GPIO之PWM点亮呼吸灯(非树莓派)
- [转]设定version 更新js缓存
- 程序员,别逼自己刷题了!每天花10分钟做这件事,Python 能力暴增!
- VS当前不会命中断点 还没有为该文档加载任何符号
- iPhoneアプリに本格ホラーアドベンチャー監獄脱出少女 android
- C++调用其他语言(C#、java、python)
- svn linux客户端使用教程,linux svn 客户端安装配置
- Tapestry5杂谈
- SC7A20 三轴加速度传感器 驱动
- 前端的debug调试
- Oracle 11g 扩展UNDO表空间
- 162_apt-cyg安装
热门文章
- Python实现四种方法求解计算阶乘和(1!+2!+3!+...+n!)
- python实现阿拉伯数字和罗马数字的互相转换
- c语言编写的程序不具备移植性,《C语言》试卷1
- 日期选择器_FPGA逻辑部分Verilog实验-选择器电路
- FISCO BCOS 区块链应用开发步骤
- linux ubuntu apache php 网站 'page not found'
- thinkphp去重,distinct、group
- excel内容少却文件很大_Excel文件格式批量转换你会了吗?神操作!Excel文件转XPS格式...
- 基Java的高校毕业管理系统
- springboot学习笔记2106版