python简单记录
2021/10/7 11:12:44
本文主要是介绍python简单记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、使用pip安装包时如果报错,不能安装可以尝试用如下方式: pip3 install wheel pip3 install C:\Users\39098\Desktop\PyYAML-5.1-cp36-cp36m-win_amd64.whl 2.python解析yaml , Loader=yaml.FullLoader 解析yaml时,用方法data = yaml.load(rd)解析数据时异常:YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details. 处理方式(已经验证): data = yaml.load(rd, Loader=yaml.FullLoader) 主要原因: yaml 5.1版本后弃用了yaml.load(file)这个用法,因为觉得很不安全,5.1版本之后就修改了需要指定Loader,通过默认加载器(FullLoader)禁止执行任意函数 解决方式: 1.yaml.load(f, Loader=yaml.FullLoader) 2.yaml.warnings({'YAMLLoadWarning': False}) # 全局设置警告,不推荐 Loader的几种加载方式 BaseLoader--仅加载最基本的YAML SafeLoader--安全地加载YAML语言的子集。建议用于加载不受信任的输入。 FullLoader--加载完整的YAML语言。避免任意代码执行。这是当前(PyYAML 5.1)默认加载器调用 yaml.load(input)(发出警告后)。 UnsafeLoader--(也称为Loader向后兼容性)原始的Loader代码,可以通过不受信任的数据输入轻 getattr(object, name[, default]): object --对象,name --属性,default --默认返回值,如果不提供默认参数,如果提供的属性不存在,会出发AttributeError eg: class A(object): bar = 1 a= A() getattr(a, 'bar') #获取属性bar值 1 getattr(a, 'bar2') #属性bar2不存在,触发异常 getattr(a, 'bar2', 3) #属性bar2不存在,但是设置了默认值 3 hasattr(object, name): object -- 对象,name -- 字符串,函数用于判断对象是否包含对应的属性,有该属性返回 True,否则返回 False。 格式化输出: 使用%格式化:print("名字是:%s, 年龄是:%d" %(self.name, self.age)) 使用format格式化: 1、带数字编号,可以调换顺序:print('{1} {1} {0}'.format('hello','world')) ->world world hello 2、带关键字:print('{a} {tom} {a}'.format(tom='hello',a='world')) -> world hello world 3、不带编号,按顺序:print('{} {}'.format('hello','world')) -> hello world 函数的参数中有不定长参数(*args)时,当向参数传多个值时,会把传入的参数全部列出来,如: def demo(arg_f, *args): print("这是arg_f:" + arg_f) for i in args: print("这是不定长参数:" + i) demo("a", "b", "c", "d") 输出结果为: 这是arg_f:a 这是不定长参数:b 这是不定长参数:c 这是不定长参数:d 函数的参数为关键字参数时,当传入的参数为多个键值对时,会全部打印出来,如: def key_value_demo(**kwargs): for k, v in kwargs.items(): print(k + "值为:" + v) key_value_demo(name="ls", age=18, sex="man") 输出结果为: name值为:ls age值为:18 sex值为:man lst = [1, 2, 3, 4, 5] def fn(x): return x ** 2 res = list(map(fn, lst)) print(res) lt = [i for i in res if i > 10] print(lt) 注:如果不用list转换map生成的对象,直接打印res,返回的是map的一个对象,打印出来的是内存地址,需要用list做一个转换,才能打印出来相应的数据 __slots__ = ("a","b"):用来限制当前类及其实例的属性,除了给定的属性之外,在添加属性时,会报一个没有该属性的错误(也可以用:__slots__ = ["a","b"])。但是只能针对当前类及其属性,对于子类及子烈的实例是不起作用的。使用这个方法的优点是:1、可以提高访问速度,2、减少内存的使用 __str__(self):在方法中使用了print输出对象时,只要自定义了__str__(self):,那么打印出来的信息是__str__(self):方法中return出来的数据 如果类中有其他方法,对象调用具体的方法时,输出的还是被调用方法中的信息,如果不调用某个具体的方法,直接打印类的某个初始化对象,则打印出来的信息是__str__(self):return中的信息。 __new__(cls):创建一个类的实例化对象,必须要有一个返回值,返回实例化出来的实例,然后在由__init__(self):做初始化的操作 Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。所以,Python常用数据结构有:列表、字典、元组、集合。 可变/不可变是针对该对象所指向的内存中的值是否可变来判断的。如可变类型的数据类型有:列表、字典、集合;不可变类型的数据类型有:字符串、元组、数字 赋值是将一个对象的地址赋值给一个变量,让变量指向该地址(旧瓶装旧酒) 浅拷贝就是对引用的拷贝 深拷贝是对对象的资源的拷贝 Python会把所有的空数据结构视为假,比如[](空列表)、{}(空集合)、''(空字符串)等,而与之相反的非空数据结构即为真 pip freeze python豆瓣源安装库: 安装Redis依赖库 pip install django-redis -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pip install django-redis-cache -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
这篇关于python简单记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南