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下实现二叉堆以及堆排序 堆是一种特殊的树形结构, 堆中的数据存储满足一定的堆序.堆排序是一种选择排序, 其算法复杂度, 时间复杂度相对于其他的排序算法都有很大的优势. 堆分为大头堆和小头堆 ...
随机推荐
- Coursera课程《Python数据结构》中课件
You can access the Google Drive containing all of the current and in-progress lecture slides for thi ...
- MySQL 用户管理及权限管理
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...
- HBase入门基础教程之单机模式与伪分布式模式安装(转)
原文链接:HBase入门基础教程 在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Had ...
- go语言基础之数组指针做函数参数
1.数组指针做函数参数 示例: package main //必须有个main包 import "fmt" //p指向实现数组a,它是指向数组,它是数组指针 //*p代表指针所指向 ...
- 《Linux总线、设备与驱动》USB设备发现机制
说明:本分析基于mstar801平台Linux2.6.35.11内核,其他内核版本仅供参考. 一.程序在内核中的位置 1.usb host做为pci总线下的一个设备存在(嵌入式系统中有可能也会直接挂在 ...
- Android中XML解析-Dom解析
Android中需要解析服务器端传过来的数据,由于XML是与平台无关的特性,被广泛运用于数据通信中,有的时候需要解析xml数据,格式有三种方式,分别是DOM.SAX以及PULL三种方式,本文就简单以D ...
- Maven私库安装与配置
Maven私库安装与配置 https://www.cnblogs.com/dengyulinBlog/p/6398310.html
- [Javascript]Clouse Cove, 2 ,Modifying Bound Values After Closure
function buildCoveTicketMarker(transport){ var passengerNumber = 0; return function(name){ passenger ...
- Pinger2
import java.io.IOException;import java.io.InputStreamReader;import java.io.LineNumberReader;import j ...
- 怎样增加Dave 英语学习小组
一. 增加小组 英语对IT 是非常重要的,但非常多人都不能坚持去学习,Dave 英语学习小组成立与已经超过半年,如今进行扩招.欢迎想提高英语,而且能够坚持每天学习的人,增加Dave 的小组.并 ...