一.dict 字典是包含key_value存储方式.在放进去的时候,必须根据key值Hash出value的存放位置,这样,取的时候才能根据key直接拿到value. dict的操作: d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} #增 d["Adam"] = 67 #删 d.pop("Bob") #改 d["Michael"] = 100 #查 "Tracy" in d # 可以用来判…
python中的引用传递 首先必须理解的是,python中一切的传递都是引用(地址),无论是赋值还是函数调用,不存在值传递. 可变对象和不可变对象 python变量保存的是对象的引用,这个引用指向堆内存里的对象,在堆中分配的对象分为两类,一类是可变对象,一类是不可变对象.不可变对象的内容不可改变,保证了数据的不可修改(安全,防止出错),同时可以使得在多线程读取的时候不需要加锁. 不可变对象(变量指向的内存的中的值不能够被改变) 当更改该对象时,由于所指向的内存中的值不可改变,所以会把原来的值复制…
比如python中str是不变对象,而list是可变对象,javascript中str也是不变对象,而array是可变对象 python的例子: >>> a = 'abc' >>> a.replace('a', 'A') 'Abc' >>> a 'abc' javascript的例子: var a = 'abc'; console.log(a.replace('a', 'A'));// Abc console.log(a);// abc 虽然字符串有个…
可变对象与不可变对象 实例被创建后,身份和类型是不可变的, 如果值是不可以被修改的,则是不可变对象 如果值是可以被修改的,则是可变对象 #在id不动,type也不动,value被修改了,则称为可变 #可变指的是:在id和type不动的前提下,值可变 对象的属性和方法 属性就是对象的值,方法就是调用时将在对象本身上执行某些操作的函数,使用.运算符可以访问对象的属性和方法,如a=3+4ja.real b=[1,2,3]b.append(4) 7 身份比较,类型比较,值比较x=1y=1x is y #…
1,可迭代对象iterable,迭代器iterator,生成器generator 可迭代对象iterable: 实现__iter__方法的类.__iter__方法返回iterator或者generator. 实现__getitem__方法的类.其参数是从0开始的索引. 迭代器Iterator: 实现__iter__方法和__next__方法的类(即自遍历).其中__iter__方法返回iterator自身,__next__方法不断返回元素直到没有元素后抛出StopIteration异常. 生成器…
python的默认参数只会在函数定义时被确定,而不是每次调用时重新确定,所以,一旦在函数中修改了默认参数,则在随后的调用中都会生效 由于这个特性,在定义函数时,如果默认参数使用可变的对象类型,如空列表,会导致逻辑出错…
#!/usr/bin/env python3 from datetime import datetime, timedelta # datetime是模块,datetime模块还包含一个datetime类 now = datetime.now() print(now) # 2019-09-19 11:20:42.173987 print(datetime(2019,9,19,11,21)) #2019-09-19 11:21:00 print(now.timestamp()) #15688633…
1.类 class Student(object): def __init__(self, name, score): self.name = name self.score = score 1)__init__构造方法,__init__方法的第一个参数永远是self,表示创建的实例本身,调用时,不用传递该参数. 2)__del__   析构函数,释放对象时使用 3)__call__函数调用 2.一个简单的例子: class Studet(object): def __init__(self,n…
字符串的方法 []表示该参数时可选的,start和end参数表示范围 count(sub[, start[, end]]) 返回sub在字符串里边出现的次数 find(sub[, start[, end]]) 检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1 isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False isdigit() 如果字符串只包含数字则返回True,否则返回False isspace() 如果字符串中只包含空格,则返回…
近日辞职待工,没有实际的项目与大家分享.暂写写在实际运用python中遇到的关于可变对象和不可变对象的坑. 首先我们需要明确一个概念,在python中一且皆对象.我们一般定义一个变量a=0,其实质a是一个类型变量,python 会把a封装为一个pyObject.我后面会用type方法来说明这个问题. 说在前面,在python 中变量名是一个类似标签的东西.它之前是什么类型与它之后是什么类型完全没有关系.我们可以把它理解为一个贴纸,可以随意从区块A撕下来贴到区块B上.正因为有这个特点,我们在使用p…