我们在Python中对于with的语句应该是不陌生的,特别是在文件的输入输出操作中,那在具体的使用过程中,是有什么引伸的含义呢?与之密切相关的上下文管理器(context manager)又是什么呢? 什么是上下文管理器 在任何一种编程语言里,文件的输入输出.数据库的建立连接和断开等操作,都是很常见的资源管理操作.但是资源是有限的,在写程序的时候,我们必须保证这些资源在使用后得到释放,不然就容易造成资源泄漏,轻者系统处理缓慢,重则系统崩溃. 我们看一个例子: for i in range(100…
我们在前面应该写过类似的代码 for i in [1,2,3,4,5]: print(i) for in 语句看起来很直观,很便于理解,比起C++或Java早起的 ; i<n;i++) printf("d\n",a[i]) 是不是简洁清晰的多.但是我们有没有想过Python在处理for in语句的时候,具体发生了什么吗?什么样的对象可以被for in用来枚举呢? 所以,这一节我们就深入到Python的容器类型实现底层看一看,了解一下迭代器和生成器. 前面用过的容器.可迭代对象和迭…
1.什么是ThreadLocal ThreadLocal顾名思义是线程局部变量.这种变量和普通的变量不同,这种变量在每个线程中通过get和set方法访问, 每个线程有自己独立的变量副本.线程局部变量不存在多个线程同时对同一个变量的操作,所以不会有线程安全问题. 2.ThreadLocal变量的使用 public class ThreadLocalDemo { private ThreadLocal<Integer> threadLocal = new ThreadLocal<Intege…
我们在前面学习了列表.元组.字典.集合和字符串等一系列Python的基本数据结构类型,下就需要把这一个个基本的数据串在一起了,这就要用到我们今天要讲的东西——”条件与循环“. 一.条件语句 条件语句的用法很简单,比如我们想要表示y=|x|这个函数,那么对应的代码就是这样的(简化代码不考虑异常,后面的也一样) #y = |x| x = float(input('>>>')) if x < 0: y = -x else: y = x 要注意的是Python和其他的语言不同,在条件语句中…
一.字符串基础 Python的字符串支持单引号('').双引号("")和三引号之中('''....'''和"""...""")三种写法这样就比较方便在字符串中嵌套带引号的字符串. a = "I'm a student" 并且这三种表示方法是相同的内容 >>> a = 'hello world' >>> b = "hello world" >>…