301/302的区别 python魔法语法

重定向301/302的区别

301主要应用场景是在域名跳转。

301重定向是永久的重定向,搜索引擎在抓取新的内容的统统是也将旧的网址替换为了重定向之后的网址。

302主要应用场景:比如:未登录的用户访问用户中心时重新定向到登录页面。

302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索引擎认为新的网址是暂时的

 

 

魔法语法

在这里列举取值、赋值、with的方法

对象['xx'] 取值,会触发哪个方法

__getattr__,在取值时如果对象中没有这个值,则会自动触发__getattr__这个内置方法

对象['xx'] =10 设置值,会触发哪个方法、

__setattr__,在设置值时会触发__setattr__这个内置方法

 

with 触发的是哪个方法

with在使用时会出法两个方法:

通过__enter__方法初始化,然后再__exit__中做山后一级处理异常,其中__enter__()方法在语句体(with语句包裹起来的代码块)执行之前进入运行,__exit__()方法在语句体执行完毕退出运行,with语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的‘清理’操作,释放资源,比如文件使用后的自动关闭,线程中锁的自动获取和释放。

with的工作原理:

紧跟with后面的语句会被求值,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as关键字后面的变量,当with后面的代码块全被执行完毕之后,将调用前面返回对象的__exit__()方法。

with语句最关键的地方在于被求值对象必须有__enter__()和__exit__()这两个方法

posted @ 2019-07-01 19:38  Key丶橙子哥  阅读(283)  评论(0编辑  收藏  举报