专栏首页LEo的网络日志python技巧分享(七)

python技巧分享(七)

26 Feb 2018 python技巧分享(七)

这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。

1 is 和 == 的区别

import os

str1 = os.__name__
str2 = "os"

print str1
# os
print str2
# os

print str1 == str2
# True

print str1 is str2
# False

由示例中可以看到,str1和str2的值都是字符串”os”,str1 == str2为True,但是str1 is str2却为False,即is和==不是一回事,is为True表示两个对象的id相同,即id(str1) == id(str2)时,str1 is str2才为True,is表示2个对象引用同一块内存内容,==表示2个对象的值相等。所以判断2个对象值是否相等时,使用==,判断2个对象是否引用同一块内存时,使用is。如果将上面示例中的str1 = os.__name__修改成str1 = “os”,你会发现str1 is str2为True,这是python为了性能考虑,将str1和str2都指向同一块内存,内存的值就是字符串”os”,所以导致str1 is str2为True,如下:

str1 = "os"
str2 = "os"

print str1
# os

print str2
# os

print str1 == str2
# True

print str1 is str2
# True

print id(str1) == id(str2)
# True

print id(str1)
# 31301840

print id(str2)
# 31301840

2 通过下划线_丢弃多余的返回值

  • 不推荐方式
def demo():
    return 0, 1, 2


multi_values = demo()

print multi_values[1]
# 1
  • 推荐方式
def demo():
    return 0, 1, 2


_, one, _ = demo()

print one
# 1

前一种方式将返回的多个值以元组的形式保存在变量multi_values中,然后读取第二个值,后一种方式中,通过下划线方式,丢弃多余的函数返回值,更加简洁易读。

3 如何判断文件是否被打开

with open("tmp") as f:
    print f.closed
    for line in f.readlines():
        print line

print f.closed

'''
False
line 1

line 2

line 3
True
'''

由示例中可以看到,使用with方式打开文件,文件在with语句块范围外会自动关闭。第一个print打印False,文件处于打开状态,第二个print在with语句的范围外,打印True,表明文件处于关闭状态。

LEo at 20:04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 工作中的小技巧分享

    songleo
  • go获取机器的mac地址和ip

    songleo
  • python技巧分享(十一)

    songleo
  • 笔记58 | Android闹钟

    项勇
  • 老男孩Python全栈开发(92天全)视频教程 自学笔记18

    玩蛇的胖纸
  • A018-布局之TableLayout

    表格布局,顾名思义像表格一样进行布局。我们通常配合TableRow一起使用,TableRow代表一行,有多少个TableRow就有多少行。

    用户1130025
  • [885]Tensorflow设置CUDA_VISIBLE_DEVICES来控制GPU的使用

    如果服务器有多个GPU,tensorflow默认会全部使用。如果只想使用部分GPU,可以通过参数CUDA_VISIBLE_DEVICES来设置GPU的可见性。

    周小董
  • jQuery数据结构渲染(4):复选框checkbox赋值

    祈澈菇凉
  • Python 视频文件的分割和合并

    py3study
  • C#-Xamarin的Activity传值与Fragment引用

    我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器。

    Kiba518

扫码关注云+社区

领取腾讯云代金券