目录 反射 利用继承二次包装标准类 利用授权二次包装标准类 动态模块导入 反射 python提供自省的四个方法: hasattr(object,name)  判断object中有没有有个name字符串对应对应的方法和属性 class demo: name = 'chen' age = '22' def test_func(self): print("存在") hasattr(demo, 'test_func') #True hasattr(demo, 'name') #True has…
一.isinstance和issubclass isinstance:判断某个对象是否是某个类的实例,返回True或Flase issubclass:判断某个类是否是某个类的子类. 例如: class Foo(object): def __init__(self,name): self.name = name class bar(Foo): pass obj=Foo('wd') print(isinstance(obj,Foo))#判断obj是否是Foo的实例 print(issubclass(…
模块 Python中,如果要引用一些内置的函数,该怎么处理呢?在Python中有一个概念叫做模块(module) 简单地说,模块就是一个保存了Python代码的文件. 模块分类: 1)内置模块 2)自定义模块 3)第三方模块 模块存在方式: ".py" "文件夹" paramiko 模块(这个模块需要安装,具体安装方法很简单,这里不做说明) 用途:linux 主机远程 用到这个模块 模块的导入 在Python中用关键字import来引入某个模块,比如要引用sys这个…
一.subprocess模块 subprocess英文意思:子进程 那什么是进程呢? (一)关于进程的相关理论基础知识 进程是对正在运行程序的一个抽象,进程的概念起源于操作系统,是操作系统最核心的概念,操作系统的其他所有内容都是围绕进程的概念展开的. 所以想要真正了解进程,必须事先了解操作系统. 程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以…
1.装饰器原理 def f1(arg): print '验证' arg() def func(): print ' #.将被调用函数封装到另外一个函数 func = f1(func) #.对原函数重新赋值 func() 现在有这样一种需求,原来的基础设施组提供的API接口函数需要都添加验证功能,解决的方法如下: def auth(func): def inner(): #添加验证功能 print 'before' func() return inner def f1(): #原来的函数 prin…
目录 os模块 sys模块 json模块 pickle模块 xml模块 re模块 logging模块 configparser模块 hashlib模块 time模块 random模块 subprocess模块 os模块 import os print(os.getcwd()) #获取当前文件的工作路径 os.chdir('dirname') #切换当前的文件目录,相当于shell的cd os.chdir('.') os.makedirs('dirname1/dirname2') #递归新建文件夹…
一.logging模块 (一).日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法.软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情.一个事件可以用一个可包含可选变量数据的消息来描述.此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level). 1.日志的作用 通过log的分析,可以方便用户了解系统或软件.应用的运行情况:如果你的应用log足够丰富,也可以分析以往用户的操作行为.类型喜好.地域分布或其他更多信息:如果一个应用的log同时也分了多…
一.re模块 正则表达式本身是一种小型的.高度专业化的编程语言,正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是re,正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 匹配语法 re方法(匹配模式,字符串,flag) (一)字符 1.元字符 普通字符 匹配内容 . 匹配任意除换行符"\n"外的字符,若指定flag DOTALL,则匹配任意字符,包括换行 \ 转义字符,使后一个字符改变原来的意思 * 匹配前一个字符0或多次…
一.time模块 三种时间表示 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.(从1970年到现在这一刻一共有多少秒)我们运行“type(time.time())”,返回的是float类型.如 time.time()=1525688497.608947 格式化的时间字符串(字符串时间) 如“2018-05-06” 元组(struct_time) (结构化时间) : struct_…
首先创建一个模块目录lib,然后在目录内创建一个模块为:aa.py 官方推荐: import importlib aa = importlib.import_module('lib.aa') c = aa.c() print(c) __import__导入方式 lib = __import__('lib.aa') # 相当于import libc = lib.aa.c()print(c)…
这个是上两个的加强版…
面向对象,多态: 有时一个对象会有多种表现形式,比如网站页面有个按钮, 这个按钮的设计可以不一样(单选框.多选框.圆角的点击按钮.直角的点击按钮等),尽管长的不一样,但它们都有一个共同调用方式,就是onClick()[鼠标单击]方法.我们直要在页面上一点击就会触发这个方法.点完后有的按钮会变成选中状态.有的会提交表单.有的甚至会弹窗.这种多个对象共用同一个接口,又表现的形态不一样的现象,就叫做多态( Polymorphism ). 例如:人会吃,猪也会吃,牛也会吃,那都是吃,这吃就是一个接口,但…
异常处理 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常.异常是Python对象,表示一个错误.当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行. 方式一.  使用try/except语句. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 如果你不想在异常发生时结束你的程序,只需在try里捕获它. 语法: 以下为简单的try...…
一.实现自省的四个函数 1.hasattr判断一个对象中有没有一个name字符串对应的方法或属性 class BlackMedium: feture="Ugly" def __init__(self,name,addr): self.name=name self.addr=addr def sell_house(self): print("%s 正在卖房子,傻逼才买呢" %self.name) def rent_house(self): print("%s…
判断类与对象关系 isinstance(obj, cls)  判断对象obj是否是由cls类创建的 #!/usr/bin/env python #-*- coding:utf-8 -*- class Foo(object): pass obj = Foo() print isinstance(obj, Foo) #输出结果:True #如果对象obj是由Foo类创建的,那么就会返回True 否则返回False #!/usr/bin/env python #-*- coding:utf-8 -*-…
备注:本套笔记内容来源于互联网,只做学习使用,如有侵权请联系本笔记作者. 资料内容 Python之路(一)——Python 初识 Python之路(二)——基础语法 Python之路(三)——函数 Python之路(四)——Python 三器(迭代器.生成器.装饰器) Python之路(五)——包与模块 Python之路(六)——Python 常用模块 Python之路(七)——Python OOP(基础篇) Python之路(八)——Python OOP(进阶篇) Python之路(九)——P…
Python 有三种模块导入函数 1. 使用import 导入模块 import modname : 模块是指一个能够交互使用,或者从还有一Python 程序訪问的代码段.仅仅要导入了一个模块,就能够引用它的不论什么公共的函数.类或属性.模块能够通过这样的方法来使用其他模块的功能.用import语句导入模块.就在当前的名称空间(namespace)建立了一个到该模块的引用.这样的引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包括模块的名字.所以不能仅仅使用 funcname,…
本课主题 反射 Mapping 介绍和操作实战 模块介绍和操作实战 random 模块 time 和 datetime 模块 logging 模块 sys 模块 os 模块 hashlib 模块 re 模块 本周作业 反射 Mapping 介绍和操作实战 反射是利用字符串的形式去对象 (模块) 中操作 (寻找/检查/删除/设置) 成员,以後看其他源碼的時候會經常看到反射,最有代表性的就是 Tornado 和 Django 框架 案例例子 假设创建了一个common.py,程序里有3个功能,比如网…
标准库内部如何实现接口的 package main import ( "fmt" "io" "net/http" "os" ) func init() { if len(os.Args) != 2 { fmt.Println("Usage:./example2 <url>") os.Exit(-1) } } func main() { r, err := http.Get(os.Args[1])…
一.反射 1.反射的基本介绍: 反射是所有程序的专有名词,在java,C#语言中都存在反射,那么什么是反射呢? python中 的反射概括来说:是通过字符串的形式导入模块,并通过字符串的形式去模块中寻找函数并执行. 总结: 可以以字符串的形式去(某个)对象操作的成员.模块实际也是一个对象. 2.利用字符串来导入模块 根据用户输入的模块名(input)来导入模块: #!usr/bin/env python # -*- coding:utf-8 -*- modue = input('请输入您要导入的…
一.模块和命名空间 一般来说,Python程序往往由多个模块文件构成,通过import语句连接在一起.每个模块文件是一个独立完备的变量包,即一个命名空间.一个模块文件不能看到其他文件定义的变量名,除非它显示地导入了那个文件,所以模块文件在代码文件中起到了最小化命名冲突的作用.因为每个文件都是一个独立完备的命名空间,即使在他们拼写相同的情况下,一个文件的变量名是不会与另一个文件中的变量冲突的. 注意:import VS from:应该指出,from语句在某种意义上战胜了模块的名称空间分割的目的,因…
python王者开发之路:模块初识 模块初识我现在讲的确有点早.不过没关系,后面我会详细说模块. 模块,也就是库,是python三剑客之一.这三剑客,函数.库和类,都是由程序编写而成的.之所以我先说模块,因为模块是这里的大哥,也是比较简单的. 模块,在python脚本环境以及python各种五花八门里的编辑器中,我们使用import导入的. 一.导入以及创建模块 导入,是使用模块最最重要的操作了.刚刚我说了,是用import导入的.每当我说完这个,底下的学生绝对开始写起来了. #假如这个库名字叫…
自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的搭建:Pycharm及python安装详细教程    1.3 自学Python1.3-centos内python3并与python2共存    1.4 自学Python1.4-Centos内vim中文乱码问题    1.5 自学Python1.5-Centos内python2识别中文    1.6 …
一.程序解耦 解耦总的一句话来说,减少依赖,抽象业务和逻辑,让各个功能实现独立. 直观理解“解耦”,就是我可以替换某个模块,对原来系统的功能不造成影响.是两个东西原来互相影响,现在让他们独立发展:核心思想还是最小职责,每个地方都只做一件事情:只要一个地方负责了多项事情,就存在解耦的可能.在系统每个层次都可以体现解耦的思想,比如在架构层面把存储和业务逻辑解耦,把动态页面和静态页面解耦:在模块层面把业务模块和统计模块解耦:在代码层面把多个功能解耦等等. 低耦合,高内聚---模块之间低耦合,模块内部高…
面向对象之 反射,双下方法 1. 反射 计算机科学领域主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 主要适用于四种情况: 1.对对象的反射 class Foo: f = '类的静态变量' def __init__(self,name,age): self.name=name self.age=age def say_hi(self): print('hi,%…
一.线程池 很久(python2.6)之前python没有官方的线程池模块,只有第三方的threadpool模块, 之后再python2.6加入了multiprocessing.dummy 作为可以使用线程池的方式, 在python3.2(2012年)之后加入了concurrent.futures模块(python3.1.5也有,但是python3.1.5发布时间晚于python3.2一年多),这个模块是python3中自带的模块,但是python2.7以上版本也可以安装使用. 下面分别介绍下各…
这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jupyter notebook --generate-config 2.打开这个配置文件,找到“c.NotebookApp.notebook_dir=‘’ ”, 把路径改成自己的工作目录 使用notepad++打开这个文件,大概在124行添加自己的工作目录 c.NotebookApp.notebook_…
模块简介 一.time模块二.sys模块三.datetime模块四.pickle模块 五.json模块六.OS模块七.hashlib加密模块八.第三方模块的安装方法九.requests模块十.XML模块十一.configparser模块十二.shutil十三.subprocess模块十四.logging模块 模块的分类 1.内置模块 2.自定义模块 3.第三方模块(需要安装) 模块前言:模块的导入: 模块的导入有两点需要注意: 1.在sys.path中的可以直接进行导入,因为sys.path返回…
本节课程大纲: 1.模块介绍 2.time &datetime模块 3.random 4.os 5.sys 6.shutil 7.json & picle 8.shelve 9.xml处理 10.yaml处理 11.configparser 12.hashlib 13.subprocess 14.logging模块 15.re正则表达式 一.模块介绍 1.定义: 用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的Python文件(例如test.py…
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.p…