Python知识总结(二)
一、import和reload和__import__
import是一个关键字,只引入一次
reload是一个函数,参数为一个字符串,它总是会重新引入
__import__是一个函数,与import关键字作用一样,它的好处就是可以动态引入包。因为import关键字后面只能跟确定的包名,而不能跟字符串参数,__import__可以在程序运行时确定引入哪一个包
要使用reload函数,需要引入imp包。在python2中,reload是一个内置函数,在python3中移动到了imp模块中
from imp import reload
二、doc string
以下代码意在告知如下知识点:
- __all__跟dir(模块名)是一对
- 在模块开头、类开头、函数开头,添加注释,即可使用help(module),help(className),help(functionName)查看doc string,也可以使用module.doc,fun.__doc__查看注释
"main module"
__all__ = ["A", "f"]
class A:
"this is class A"
def haha(self):
print("haha")
def f():
"""
F函数是最高级的函数
"""
pass
三、vars 、locals是内置函数,用于查看当前作用域内包含哪些东西
四、类中定义变量是n+1份
class A:
cnt = 0
def __init__(self):
A.cnt += 1
self.cnt = A.cnt
a = A()
print(a.cnt,A.cnt) #1,2
b = A()
print(a.cnt,b.cnt,A.cnt) #1,2,2
a.cnt = 10
print(a.cnt,b.cnt,A.cnt) #10,2,2
上例中,类A、对象a、对象b中各维持一份cnt
五、staticmethod和classmethod
python中类有三种方法:实例方法、staticmethod、classmethod
实例方法第一个参数必须是self参数,classmethod第一个参数必须是cls参数,staticmethod就跟普通的类外面的函数没啥区别
三种函数有两个调用主体:类和对象
类和对象都可以随便调用这三种方法。
class A:
def haha(self):
print("haha")
@classmethod
def classHaha(cls):
print("class haha")
a = A()
A.haha(a) # 类调用实例方法
a.classHaha() # 实例调用类方法
a.classHaha(A) #报错:classHaha只有一个参数
六、异常
try:
pass
except ZeroDivisionError: # 捕捉一个错误
pass
except (ArithmeticError, FloatingPointError) as e: # 捕捉多个错误,as e有没有都可以
pass
except: # 捕捉全部异常,也可以写成except Exception as e以获取参数
pass
else: # 如果没有异常抛出
pass
finally: # 不管有没有异常
pass
七、动态函数参数
Python库中常见的一种结构是def f(*args, **kargs),运行一个小例子立马就明白了
"""
用*args,**kargs可以代表一切参数
"""
def f(*args, **kargs):
print(args, kargs)
f("one", 1, 2, 3, one=1, two=2)
*args表示全部的不知名字的参数,**kargs表示全部的知道名字的参数。- 有名字的参数后面不能出现没名字的参数
*args会吃掉全部的没名字的参数def f(usr,*args,**kargs)这种定义是合法的,usr只会吃掉第一个形参,args会吃掉它遇见的一切没名字的形参。
Python知识总结(二)的更多相关文章
- 接口测试基础——第7篇 简单的Python知识普及(二)之装饰器
今天我们来学习python里面的“装饰器” 1.我在函数test运行前想先打印一些内容怎么办? def func(param): print u"打印的内容" para ...
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...
- python数据处理技巧二
python数据处理技巧二(掌控时间) 首先简单说下关于时间的介绍其中重点是时间戳的处理,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00 ...
- 一些Python中的二维数组的操作方法
一些Python中的二维数组的操作方法 这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下 需要在程序中使用二维数组,网上找到一种这样的用 ...
- python排序之二冒泡排序法
python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- python/MySQL练习题(二)
python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...
- Python/MySQL(二、表操作以及连接)
Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...
- python下实现二叉堆以及堆排序
python下实现二叉堆以及堆排序 堆是一种特殊的树形结构, 堆中的数据存储满足一定的堆序.堆排序是一种选择排序, 其算法复杂度, 时间复杂度相对于其他的排序算法都有很大的优势. 堆分为大头堆和小头堆 ...
随机推荐
- 如何读取抓取的wifi包内容
有密码的WIFI,WIFI的密码会生成一个临时会话密钥,这个临时会话密钥可以用来加密会话内容,也就是说.比如你在浏览网页,用有密码的WIFI,连接上以后,浏览的网页流量是加密了的,所以更安全.无密码的 ...
- 什么是C++虚函数、虚函数的作用和使用方法
我们知道,在同一类中是不能定义两个名字相同.参数个数和类型都相同的函数的,否则就是“重复定义”.但是在类的继承层次结构中,在不同的层次中可以出现名字相同.参数个数和类型都相同而功能不同的函数.例如在例 ...
- 如何查看ETW Trace?
三种方法: LogParser Tractrpt - C:\Windows\System32 SvcTraceViewer.exe 后面的链接中有使用的详细步骤. 参考资料 ========= ...
- iOS开发-UIWebView加载本地和网络数据
UIWebView是内置的浏览器控件,可以用它来浏览网页.打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置 ...
- 使用jQuery在上传图片之前实现缩略图预览
使用jQuery在上传图片之前实现缩略图预览 jQuery代码 01 $("#uploadImage").on("change", function(){ 02 ...
- ZH奶酪:Linux/Ubuntu 安装/卸载 软件
1.安装.deb文件 以安装Chrome为例: (1)到官方网站下载Chrome浏览器相应版本,比如google-chrome-stable_current_i386.deb: (2)Ctrl+Alt ...
- QoS的构建模块与机制
本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed ...
- Cocos2d-x Touch事件处理机制
在Cocos2d-x中提供两种触摸事件处理机制:CCStandardTouchDelegate和CCTargetedTouchDelegate. 一.如何使用 0.默认情况下CCLayer都是没有启动 ...
- 使用Draw rect 绘制圆角矩形
- (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); UIGraphicsPush ...
- js随机码之乱序数组
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...