*)关于可变参数使用
def modify(*password1,id,name,email):#想让password1变成可变参数,参考https://www.liaoxuefeng.com/wiki/1016959663602400/1017261630425888里“如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:” # check_admin(request) logging.info('*'*30+'id参数为'+id) logging.info('*'*30+'name参数为'+name) logging.info('*'*30+'email参数为'+email) logging.info('*'*30+'password参数为'+password1)#结果INFO:root:使用这些参数调用: {'id': '001556249218238f1b1ed77562c4add92ba541eaabd1edb000', 'name': '我是管理员', 'email': '11111@qq.com'}INFO:root:******************************id参数为001556249218238f1b1ed77562c4add92ba541eaabd1edb000INFO:root:******************************name参数为我是管理员INFO:root:******************************email参数为11111@qq.comINFO:root:******************************password参数为()#必须要改成这样 def modify(*,password1,id,name,email):
这个问题从修改密码开始,当我点击重置密码后,使用重置的密码却登录不上去,一开始我在后台比较登录和修改时的加密逻辑,甚至到了把登录里的加密逻辑放到修改模块里的地步,尽管他们看起来一模一样,最后我终于确认了不是逻辑的问题,我就觉得可能是参数的问题,其实这时候我应该去比较登录和修改里的参数的,但是我没有,我直接用上面的输出来进行验证,最后终于发现了是参数类型的顺序写错了,虽然这个问题解决了,但是又引出了新的问题,到底应该怎样拼写不同类型参数的顺序呢?
*)进入其他盘的命令
#不是这样C:\Users\Administrator.SC-201605202132λ cd D:D:\cmder\vendor\git-for-windows#是这样C:\Users\Administrator.SC-201605202132λ D:D:\cmder\vendor\git-for-windowsλ
*)python 数组(没有总结完全)
参考链接:https://www.cnblogs.com/ifantastic/p/3811145.html
python中的数组名也是指向数组存放的地址
a=[1,2,4]b=a#我们并没有复制a所指引的列表。我们只是创建了一个新的标签b,然后将其指向a所指向的列表。
内建函数id()可以返回对象的唯一id。该id是对象的内存地址。
>>> a = [1, 2, 3]>>> b = a>>> a.append(4)>>> print a[1, 2, 3, 4]>>> print b[1, 2, 3, 4]
这样复制
new = old[:]#表示切片b = a[:]#切片
*)在函数中使用全局变量
先在函数中用global声明一下就可以了,不需要也不能(?)用一次声明一次
def model_choose(str,model): #jieba_cut=functools.partial(jieba.cut,cut_all=True) global result #使用result if model==1:#标志着是全模式 result.append('全模式')#不能将行代码包括下面的都写成global result... jieba.cut(str,cut_all=True) elif model==2:#标志着精确模式 result.append('精确模式') return jieba.cut(str,cut_all=False) else:#搜索硬性模式 result.append('搜索引擎模式') return jieba.cut_for_search(str)str ='可以使用类似今天看那个偏函数'model=2result=[]