1、需求背景 有时候在开发过程中,在一个分支上(dev1)已经写了一部分代码,但是需要紧急切换到别的分支(dev2)上修改某个代码,这时候不能直接从dev1分支上切换到dev2分支上,提示你需要保存代码。此时dev1分支上的代码还没有写完,暂时还不能提交。但是想在不提交代码的情况下能够临时保存dev1分支上的代码,然后切换到dev2分支上。等dev2分支上处理完成后,再切换到dev1分支上可以继续工作。2、gitstash介绍 gitstash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。通过gitstash命令推送一个新的储藏,
1、需求背景 有时候在开发过程中,在一个分支上(dev1)已经写了一部分代码,但是需要紧急切换到别的分支(dev2)上修改某个代码,这时候不能直接从dev1分支上切换到dev2分支上,提示你需要保存代码。此时dev1分支上的代码还没有写完,暂时还不能提交。但是想在不提交代码的情况下能够临时保存dev1分支上的代码,然后切换到dev2分支上。等dev2分支上处理完成后,再切换到dev1分支上可以继续工作。2、gitstash介绍 gitstash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。通过gitstash命令推送一个新的储藏,
序列化类高级用法之source使用source,字段参数,可以修改序列化字段名字原本序列化器中字段名,必须和表中的字段名一样,不一样会报错我们可以通过source字段来改变序列化器中的字段名,使得前端在展示的时候也修改一下字段名!!source也可以做跨表查询,通过外键字段,表名点外键出去的字段名字classBookSerializer(serializers.Serializer): publish=serializers.CharField(source='publish.email')#等价于book.publish.email查到当前书对象的文键出版社对象然后拿到该出版社对象的邮箱so
序列化类高级用法之source使用source,字段参数,可以修改序列化字段名字原本序列化器中字段名,必须和表中的字段名一样,不一样会报错我们可以通过source字段来改变序列化器中的字段名,使得前端在展示的时候也修改一下字段名!!source也可以做跨表查询,通过外键字段,表名点外键出去的字段名字classBookSerializer(serializers.Serializer): publish=serializers.CharField(source='publish.email')#等价于book.publish.email查到当前书对象的文键出版社对象然后拿到该出版社对象的邮箱so
python一切皆对象,从是否可调用层面讲,对象又可以分为可调用对象、不可调用对象在本篇中,类中实现__call__双下方法,即将该类的实例变为可调用对象 普通类未实现__call__的方法,实例是不可调用的,先看1classValley:2...345if__name__=='__main__':6v=Valley()7print(callable(v))output: False 实现了__call__方法后1classValley:2def__call__(self,*args,val='测试',**kwargs):3print(val)456if__name__=='__m
python一切皆对象,从是否可调用层面讲,对象又可以分为可调用对象、不可调用对象在本篇中,类中实现__call__双下方法,即将该类的实例变为可调用对象 普通类未实现__call__的方法,实例是不可调用的,先看1classValley:2...345if__name__=='__main__':6v=Valley()7print(callable(v))output: False 实现了__call__方法后1classValley:2def__call__(self,*args,val='测试',**kwargs):3print(val)456if__name__=='__m
import语句用来导入其他python文件(称为模块module),使用该模块里定义的类、方法或者变量,从而达到代码复用的目的。将要建立文件的结构为:Tree|____m1.py|____m2.py|____Branch|____m3.py|____m4.py首先,先建立一个文件夹Tree作为工作目录,并在其内建立两个文件m1.py和m2.py,在m1.py写入代码:importosimportm2m2.printSelf()在m2.py写入代码:defprintSelf(): print('Inm2')打开命令行,进入到Tree目录下,敲下pythonm1.py运行,发现没有报错,且打印出
import语句用来导入其他python文件(称为模块module),使用该模块里定义的类、方法或者变量,从而达到代码复用的目的。将要建立文件的结构为:Tree|____m1.py|____m2.py|____Branch|____m3.py|____m4.py首先,先建立一个文件夹Tree作为工作目录,并在其内建立两个文件m1.py和m2.py,在m1.py写入代码:importosimportm2m2.printSelf()在m2.py写入代码:defprintSelf(): print('Inm2')打开命令行,进入到Tree目录下,敲下pythonm1.py运行,发现没有报错,且打印出
一、with语句的原理上下文管理协议(ContextManagementProtocol):包含方法__enter__()和__exit__(),支持该协议的对象要实现这两个方法。上下文管理器(ContextManager):支持上下文管理协议的对象,这种对象实现了__enter__()和__exit__()方法。上下文管理器定义执行with语句时要建立的运行时上下文,负责执行with语句块上下文中的进入与退出操作。通常使用with语句调用上下文管理器,也可以通过直接调用其方法来使用。说完上面两个概念,我们再从with语句的常用表达式入手,一段基本的with表达式,其结构是这样的:withEX
一、with语句的原理上下文管理协议(ContextManagementProtocol):包含方法__enter__()和__exit__(),支持该协议的对象要实现这两个方法。上下文管理器(ContextManager):支持上下文管理协议的对象,这种对象实现了__enter__()和__exit__()方法。上下文管理器定义执行with语句时要建立的运行时上下文,负责执行with语句块上下文中的进入与退出操作。通常使用with语句调用上下文管理器,也可以通过直接调用其方法来使用。说完上面两个概念,我们再从with语句的常用表达式入手,一段基本的with表达式,其结构是这样的:withEX