一、importreload__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知识总结(二)的更多相关文章

  1. 接口测试基础——第7篇 简单的Python知识普及(二)之装饰器

    今天我们来学习python里面的“装饰器” 1.我在函数test运行前想先打印一些内容怎么办? def func(param):    print u"打印的内容"    para ...

  2. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

  3. python数据处理技巧二

    python数据处理技巧二(掌控时间) 首先简单说下关于时间的介绍其中重点是时间戳的处理,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00 ...

  4. 一些Python中的二维数组的操作方法

    一些Python中的二维数组的操作方法 这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下 需要在程序中使用二维数组,网上找到一种这样的用 ...

  5. python排序之二冒泡排序法

    python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...

  6. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  7. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

  8. python/MySQL练习题(二)

    python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...

  9. Python/MySQL(二、表操作以及连接)

    Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...

  10. python下实现二叉堆以及堆排序

    python下实现二叉堆以及堆排序 堆是一种特殊的树形结构, 堆中的数据存储满足一定的堆序.堆排序是一种选择排序, 其算法复杂度, 时间复杂度相对于其他的排序算法都有很大的优势. 堆分为大头堆和小头堆 ...

随机推荐

  1. C++“窗体”程序设计启蒙(之二)

    [摘要]本文适合已经完整学习了C++面向对象机制,但在开发窗体程序方面还是零基础的同学.通过本文的引导进行实践体验,目的是消除同学们开发窗体程序的神奇感,为下一步的自学找到感觉.同一时候,能更深入地体 ...

  2. 快速入门:十分钟学会PythonTutorial - Learn Python in 10 minutes

    This tutorial is available as a short ebook. The e-book features extra content from follow-up posts ...

  3. C语言的32个保留字

    auto :声明自动变量 double :声明双精度变量或函数 int: 声明整型变量或函数 struct:声明结构体变量或函数 break:跳出当前循环 else :条件语句否定分支(与 if 连用 ...

  4. java.lang.ClassNotFoundException: Didn't find class "stu.love.neihan.MainActivity" on path: DexPathL

    java.lang.ClassNotFoundException: Didn't find class "stu.love.neihan.MainActivity" on path ...

  5. TPC-E在populate测试Database时需要注意的一些事项

    第一,  安装时不要使用named instance, 默认的instance就好. 否则会报连不上Database. 第二, TPC-E工具文件夹的完整路径中不可以有空格, 否则会在generate ...

  6. Android中ActionBar及Overflow的显示

    最近在按照Android的API文档学习Android中actionbar的使用,Action bar 最基本的形式,就是为 activity 显示标题,并且在标题左边显示一个 app icon.在这 ...

  7. 线程 Timer TimerTask 计时器 定时任务 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. HTML标签 闭合还是不闭合?

    你在写 HTML5 代码的时候,是否纠结过应该写 <br /> 还是 <br>,是写 <input /> 还是写 <input>.写 <scrip ...

  9. Metronic V1.5.2 Responsive Admin Dashboard Template build with Twitter Bootstrap 3.0

    Template Name: Metronic - Responsive Admin Dashboard Template build with Twitter Bootstrap 3.0 Versi ...

  10. C++类型转换的经典例子