Python六大基本数据类型:数字、字符串、列表、元组、字典、集合
使用.update()方法更新字典中的数据
#方法一:将age数据更新到name中
name = {'name': 'panpan'}
age = {'age': 25}
name.update(age)
print(name)
#方法二:自定义一个空字典,将name、age更新到空列表中
d = {}
d.update(name)
d.update(age)
print(d)
#方法三:将字典转化成列表相加,在转成字典
conb = dict(list(name.items())+list(age.items()))
print(conb)
import json
test_dict = {'one':1, 'two':{2.1:['a', 'b']}}
with open("../data/data.json","w") as f:
json.dump(test_dict,f)
print("加载入文件完成...")
不管异常是否发生,finally中的语句都会执行,所以即使有return,finally也会执行
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
基本的参数传递机制有两种:值传递和引用传递
Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值’来传递对象。
深拷贝和浅拷贝是针对可变对象:list、dict 和 set
深拷贝:copy.deepcopy(a) ,深拷贝都会重新生成一个新的对象,改变后不会对原对象有影响
浅拷贝:copy.copy(a),浅拷贝只使用原始元素的引用(内存地址),修改后原对象也变化
常见的浅拷贝操作有:
使用切片操作[:],使用工厂函数(如list/dict/set),copy模块的copy()方法
args和**kwargs 是python方法中的可变参数
args表示任何多个无名参数,它是一个tuple
**kwargs表示关键字参数,它是一个dict
同时使用args和kwargs时,必须args参数列要在kwargs前
当方法的参数不确定时,可以使用*args 和kwargs
继承的作用:
继承:子类直接具备父类的能力(属性和方法)
作用:解决代码重用问题,提高开发效率
继承的语法格式:
class 子类名(父类名):
pass
继承分为单继承和多继承:
1、单继承:只继承父类的属性方法,
2、多继承:继承关系为多层传递,如生活中的爷爷、父亲、儿子
多态:多种形态,调用同一个函数,不同表现
实现多态的步骤:
什么是封装?
面向对象编程有三大特性:封装、继承、多态,其中最重要的一个特性就是封装。
封装:指的就是把数据与功能都整合到一起
分两步实现:隐藏与开放接口
python中对对象的封装操作,使其对外只提供固定的访问模式,不能访问其内部的私有属性和私有方法。python中的封装,一般指的是对类属性,类方法的封装,即类属性私有化和类方法私有化
self是什么:哪个对象调用方法,方法中self就是这个对象
self的作用:为了区分不同对象的属性和方法
os.getcwd() 返回当前工作目录
os.chdir(path) 改变工作目录
os.listdir(path) 列举指定目录中的文件名和目录名
os.mkdir(path) 创建单层目录
os.makedirs(path) 递归创建目录
os.remove(path) 删除文件
os.rmdir(path) 删除单层目录
os.removedirs() 递归删除目录
os.system(command) 运行系统的shell命令
os.rename(old,new) 将老的文件名或目录重新命名为新的文件名或目录
os.curdir 代表当前目录
os.pardir 代表上一级目录