Python一些细节】的更多相关文章

不要子类化内置类型 内置类型(由C语言编写)不会调用用户定义的类覆盖的特殊方法. 例如,子类化dict作为测验: class DoppeDict(dict): def __setitem__(self, key, value): super().__setitem__(key, [value]*2) #改为重复存入的值 dd = DoppeDict(one=1) print(dd) dd['two'] = 2 print(dd) dd.update(three=3) print(dd) #结果…
1.tab缩进2.读取文件,在文件名前加r或者R.这是因为python原始字符串特性,即在字符串的前面已R或者小写字母r开始,则字符串不对\进行转移,直接输出,通常用于表示windows的路径.file = open(r'E:\soft\Python\script\a.txt')for line in file.readlines():    print linefile.close()…
python的函数位置参数在调用时可以直接传参,也可以a=5,b=7的形式传参,原以为kw参数才可以. >>> def f(a,b): print a+b >>> f(3,5)#直接传参 8 >>> f(a=5,b=7)#以=形式传参 12 python的词典key不可以是list .dict因为它们没有hash值 >>> o=object() >>> hash(o) -2146781108 >>>…
面向对象圣经 认识面向对象 什么是面向对象? 有什么实在的好处? 被坑了这么多年,没弄清楚和面向过程有啥切身的区分 我以为这都是大学老师的错. 没把我们启蒙好. 这么多年深受其害. 总结起来三个字: 瞎扯淡. 思想障碍没解决,就懒得理了. 就如同你不信教, 永远也弄不明白那些人那些事及那些仪式有啥实在的价值. 面向对象&面向过程实际区分的直观感受 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. whil…
1. a[::-1]翻转 设有一个元组或者列表 a = (1,2,3,4) b = [1,2,3,4] 则a[::-1]和b[::-1]的含义是将元组或列表的内容翻转 a[::-1] # 结果为(4,3,2,1) b[::-1] #结果为[4,3,2,1] 注意和a[:-1]的区别 a[:-1]表示从元组中切片,默认从第一个元素开始,到倒数第一个元素前面的那个元素为止 a[:-1] #结果为(1,2,3) b[:-1] #结果为[1,2,3] 列表赋值y = x 相当于 指针传递:y = x[:…
Language differences and workarounds 查询 Python 语言版本: >> import sys >> sys.version '3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]' >> sys.version_info sys.version_info(major=3, minor=5, micro=…
1.python set() dict() 有序问题,不同版本之间的差异,与Java/C++的对比 https://www.cnblogs.com/niuxichuan/p/11608386.html 2.python几种不同的格式化输出方式,只需记住最好用的一种 3.python异常处理流程: try: Normal execution block except A: Exception A handle except B: Exception B handle except: Other e…
1.零宽断言 所谓零宽断言就是并不去真正的匹配字符串文本,而仅仅是匹配对应的位置. 正则表达式中有很多这样的断言,常见的如匹配字符串或者行的起始位置 ^ 和 /A,匹配字符串或者行的末尾 $ 和 /Z,单词边界/B等等.这些简单的就不说了,今天主要说一下界定的使用方法. 表达式结构: (?=exp) 匹配exp前面的位置,即某表达式后面是exp (?<=exp) 匹配exp后面的位置,即某表达式前面是exp (?!exp)  匹配后面跟的不是exp的位置,即某表达式后面不是exp (?<!ex…
1. 多行字符串可以通过三个连续的单引号 (”’) 或是双引号 (“”") 来进行标示 >>> a='''a bc def ''' >>> print a a bc def 2. 矩阵初始化 C = [[0 for col in range(1682)] for row in range(1682)] 或者用循环的方式: # above uses the same tmp list, will cause matrix value to change when…
以前项目中是C++嵌入Python,开发起来很便利,逻辑业务可以放到python中进行开发,容易修改,以及功能扩展.不过自己没有详细的研究过C++嵌入python的细节,这次详细的研究一下.首先我们简单的使用C++调用一个Python的py脚本,然后通过Python使用C++中的对象和方法.我们使用的Python是2.7.11 1. 使用C++使用python的功能,比如我们写一个show.py,代码如下: def show(name): return "hello " + name…