2022年Python语句、函数与方法的使用技巧总结 .pdf
《2022年Python语句、函数与方法的使用技巧总结 .pdf》由会员分享,可在线阅读,更多相关《2022年Python语句、函数与方法的使用技巧总结 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Python 语句、函数与方法的使用技巧总结显示有限的接口到外部当发布 python第三方 package时,并不希望代码中所有的函数或者class 可以被外部 import,在_init_.py 中添加 _all_属性,该 list 中填写可以 import的类或者函数名,可以起到限制的 import的作用,防止外部 import其他函数或者类。#!/usr/bin/env python#-*-coding:utf-8-*-from base import APIBase from client import Client from decorator import interface,ex
2、port,stream from server import Server from storage import Storage from util import(LogFormatter,disable_logging_to_stderr,enable_logging_to_kids,info)_all_=APIBase,Client,LogFormatter,Server,Storage,disable_logging_to_stderr,enable_logging_to_kids,export,info,interface,stream with 的魔力名师资料总结-精品资料欢迎下载
3、-名师精心整理-第 1 页,共 18 页 -with语句需要支持上下文管理协议的对象,上下文管理协议包含 _enter_和_exit_两个方法。with语句建立运行时上下文需要通过这两个方法执行进入和退出操作。其中上下文表达式是跟在with 之后的表达式,该表达式返回一个上下文管理对象。#常见 with 使用场景with open(test.txt,r)as my_file:#注意,是_enter_()方法的返回值赋值给了 my_file,for line in my_file:print line 知道具体原理,我们可以自定义支持上下文管理协议的类,类中实现_enter_和_exit_方法。
4、#!/usr/bin/env python#-*-coding:utf-8-*-class MyWith(object):def _init_(self):print _init_ method def _enter_(self):名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 18 页 -print _enter_ method return self#返回对象给 as 后的变量def _exit_(self,exc_type,exc_value,exc_traceback):print _exit_ method if exc_traceback is None:print
5、Exited without Exception return True else:print Exited with Exception return False def test_with():with MyWith()as my_with:print running my_with print-分割线-with MyWith()as my_with:print running before Exception raise Exception print running after Exception if _name_=_main_:test_with()执行结果如下:名师资料总结-精品
6、资料欢迎下载-名师精心整理-第 3 页,共 18 页 -_init_ method _enter_ method running my_with _exit_ method Exited without Exception-分割线-_init_ method _enter_ method running before Exception _exit_ method Exited with Exception Traceback(most recent call last):File bin/python,line 34,in exec(compile(_file_f.read(),_file_
7、,exec)File test_with.py,line 33,in test_with()File test_with.py,line 28,in test_with raise Exception Exception 证明了会先执行 _enter_方法,然后调用 with 内的逻辑,最后执行 _exit_做退出处理,并且,即使出现异常也能正常退出名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 18 页 -filter 的用法相对 filter 而言,map 和 reduce 使用的会更频繁一些,filter 正如其名字,按照某种规则过滤掉一些元素。#!/usr/bin/env
8、 python#-*-coding:utf-8-*-lst=1,2,3,4,5,6#所有奇数都会返回True,偶数会返回 False 被过滤掉print filter(lambda x:x%2!=0,lst)#输出结果1,3,5 一行作判断当条件满足时,返回的为等号后面的变量,否则返回 else 后语句。lst=1,2,3 new_lst=lst0 if lst is not None else None print new_lst#打印结果1 装饰器之单例使用装饰器实现简单的单例模式名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 18 页 -#单例装饰器def singleto
9、n(cls):instances=dict()#初始为空def _singleton(*args,*kwargs):if cls not in instances:#如果不存在,则创建并放入字典instancescls=cls(*args,*kwargs)return instancescls return _singleton singleton class Test(object):pass if _name_=_main_:t1=Test()t2=Test()#两者具有相同的地址print t1,t2 staticmethod装饰器类中两种常用的装饰,首先区分一下他们:普通成员函数,其中
10、第一个隐式参数为对象classmethod装饰器,类方法(给人感觉非常类似于OC 中的类方法),其中第一名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 18 页 -个隐式参数为类staticmethod装饰器,没有任何隐式参数.python中的静态方法类似与C+中的静态方法#!/usr/bin/env python#-*-coding:utf-8-*-class A(object):#普通成员函数def foo(self,x):print executing foo(%s,%s)%(self,x)classmethod#使用 classmethod进行装饰def class_fo
11、o(cls,x):print executing class_foo(%s,%s)%(cls,x)staticmethod#使用 staticmethod进行装饰def static_foo(x):print executing static_foo(%s)%x def test_three_method():obj=A()#直接调用噗通的成员方法obj.foo(para)#此处 obj 对象作为成员函数的隐式参数,就是 self obj.class_foo(para)#此处类作为隐式参数被传入,就是 cls A.class_foo(para)#更直接的类方法调用名师资料总结-精品资料欢迎下载
12、-名师精心整理-第 7 页,共 18 页 -obj.static_foo(para)#静态方法并没有任何隐式参数,但是要通过对象或者类进行调用A.static_foo(para)if _name_=_main_:test_three_method()#函数输出executing foo(,para)executing class_foo(,para)executing class_foo(,para)executing static_foo(para)executing static_foo(para)property装饰器定义私有类属性将 property与装饰器结合实现属性私有化(更简单安
13、全的实现get 和 set 方法)。#python内建函数property(fget=None,fset=None,fdel=None,doc=None)fget 是获取属性的值的函数,fset 是设置属性值的函数,fdel 是删除属性的函数,doc 是一个字符串(像注释一样)。从实现来看,这些参数都是可选的。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 18 页 -property有三个方法 getter(),setter()和 delete()来指定 fget,fset 和 fdel。这表示以下这行:class Student(object):property#相当于 pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Python语句、函数与方法的使用技巧总结 2022 Python 语句 函数 方法 使用 技巧 总结
限制150内