字典和json的区别
字典是一种数据结构,json是一种数据的表现形式,字典的key值只要是能hash的就行,json的必须是字符串
可变类型以及不可变类型
可变不可变指的是内存中的值是否可以被改变
不可变类型指的是对象所在的内存块里面的值不可以改变,有数值、字符串和元组
可变类型则是可以改变,主要有列表、字典
给定两个listA,B 请找出A,B中相同的元素以及不同的元素
相同的元素:print(set(A)&set(B))
不同的元素:print(set(A)^set(B))
列表、字符串和字典的常用方法
list.append() 、insert(index)
list.pop(index)
list.index(item)
str.find(“ab”)
str.index(“ab”)
类方法、类实例方法和静态方法有什么区别
类方法:是类对象的方法,在定义的时候需要在上方使用“@classmethod”进行修饰,形参为cls,表示类对象,类对象和实例对象都可以调用
类实例方法:是类实例化对象的方法,只有实例对象可以调用,形参为self,指代对象本身
静态方法:是一个任意函数,在其上方使用“@staticmethod”进行装饰,可以用对象直接调用,静态方法实际上跟该类没有太大的关系
python中如何获取和设置对象的属性
hasattr(obj,“”)判断实例对象是否有指定实例属性或者实例方法、类方法、静方法、雷属性
getattr(obj,“”) 从实例对象中获取指定实例属性或者实例方法、类方法、静方法、雷属性
setattr(obj,“”,“”)为实例对象设置指定实例属性或者实例方法
python函数调用的时候参数的传递方式
不可变类型的参数用值传递
可变类型的参数用引用传递
为什么函数名字可以当做参数用
python中一切接对象,函数名是函数在内存中的空间,也是一个对象
缺省参数和不定长参数、关键字参数
缺省参数(默认)指在调用函数的时候没有传入参数的情况下,调用参数设定的默认值,如果传入参数,会使用传入的参数值
*args是不定长参数,他可以表示输入参数是不确定的,可以是任意多个
**kwargs是关键字参数,赋值的时候是以键=值的方式
python中is和==的区别
is判断的是a对象是否是b对象,通过判断id来判断的
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
python中的魔法方法
init初始化方法,当一个实例被创建的时候初始化的方法
new才是实例化对象调用的第一个方法
call允许一个类的实例像函数一样被调用
getitem定义获取容器中指定元素的行为,相当于self【key】
getattr定义当用户试图访问一个不存在属性的时候的行为
setattr定义当一个属性被设置的时候的行为
getattribute定义当一个属性被访问的时候的行为
del定义当一个类的实例对象内存被销毁前的行为