
Python日积月累
Python日积月累
gorgeous(๑><๑)
一点浩然气,千里快哉风。
展开
-
【Python】python中getattr的使用
这在动态获取属性值的场景中非常有用,特别是当属性名称在运行时才确定时。例如下面这段代码,只有在运行时(即传进来的name不同时)才能确定out_channels和conv_kernel_size的大小。如果指定的属性存在,则返回属性的值;如果属性不存在,并且提供了默认值,则返回默认值;如果属性不存在且没有提供默认值,则会引发 AttributeError 异常。是一个内置函数,用于获取对象的属性值。原创 2024-03-07 10:33:58 · 278 阅读 · 0 评论 -
【Python】Python 子类继承父类构造函数说明
Python中子类继承父类的构造方法的方式原创 2022-11-20 16:45:29 · 3021 阅读 · 0 评论 -
【Python】pyhton中__pycache__文件夹的产生与作用
pycache 文件夹是 Python 解释器自动生成的,用来存放编译的字节码。通俗来说:缩短程序运行时间具体来说:.py文件的汇编,只有在import语句执行时进行,当.py文件第一次被导入时,它会被汇编为字节代码,并将字节码写入同名的.pyc文件中。后来每次导入操作都会直接执行.pyc文件(当.py文件的修改时间发生改变,这样会生成新的.pyc文件),在解释器使用-O选项时,将使用同名的.pyo文件,这个文件去掉了断言(assert)、断行号以及其他调试信息,体积更小,运行更快。(使用-OO选原创 2022-02-01 18:27:27 · 11081 阅读 · 0 评论 -
【Python】Python中import模块时的搜索路径
当你导入一个模块,Python 解析器对模块位置的搜索顺序是当前目录如果在当前目录没有找到,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录如果都找不到,Python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。PYTHONPATH 变量:作为环境变量,PYTHONPATH 由装在一个列表里的原创 2022-01-30 17:23:59 · 3422 阅读 · 0 评论 -
【学习笔记】Effective-Python(第二版)【第一章】
第1条 查询自己使用的Python版本可以使用–version准确找出所使用的具体Python版本python --version# Python 2.7.18如果你要用的不是Python2而是Python3,那么通常可以输入python3命令来启动python3 --version# Python 3.8.7在执行Python代码的过程中,也可以通过内置的sys模块查询相关的值确定当前使用的Python版本。import sysprint(sys.version_info)prin原创 2021-12-07 09:36:54 · 773 阅读 · 0 评论 -
【学习笔记】Python使用doctest编写高质量代码
前言平日我们无论在debug还是查看某些源码时,里面或多或少会出现下图中方框中的注释。我们可以把这些示例代码在Python的交互式环境下输入并执行,结果与文档中的示例代码显示的一致。这就是本文中的主角——doctest,doctest中文名字叫做文档测试。一句话来解释就是:doctest 通过运行嵌入在文档中的示例代码片段并验证是否产生预期的结果来测试源代码。它的工作原理是解析帮助文档以找到示例代码,运行之,然后将输出结果与预期值进行比较。如何使用使用方法很简单,在你编写的函数里面使用交互原创 2021-12-02 12:09:28 · 873 阅读 · 0 评论 -
【学习笔记】Python的内置函数---map()
介绍map() 会根据提供的函数对指定序列做映射。使用map(function, iterable, ...)function:函数iterable:一个或多个序列返回值python2.x 返回列表python3.x 返回迭代器例子python2.x>>> def square(x) : # 计算平方数... return x ** 2...>>> map(square, [1,2,3,4,5]) #原创 2021-12-01 12:03:22 · 750 阅读 · 0 评论 -
【学习笔记】流畅的Python第二版【第一章】
一摞Python风格的纸牌#!/usr/bin/env python3import collectionsfrom random import choice# namedtuple自从python2.6开始就加入到了Python里,用以构建只有少数属性但没有方法的对象,类似于C/C++里面的结构体Card = collections.namedtuple('Card', ['rank','suit'])def main(): class FrenchDeck: ranks = [st原创 2021-11-21 19:52:25 · 1885 阅读 · 0 评论 -
【环境配置】解决python错误提示“non-default argument follows default argument”
错误出现的原因是把含有默认值的参数放在了不含默认值的参数的前面,解决方法就是调整一下参数位置即可原创 2021-11-15 22:02:05 · 1613 阅读 · 0 评论 -
【脚本转换】VOC数据集划分脚本
import osfrom glob import globfrom sklearn.model_selection import train_test_splitsaved_path = "/home/wxd/CP/train/VOCdevkit/VOC2007/" # 保存路径# 2.创建要求文件夹if not os.path.exists(saved_path + "ImageSets/Main/"): os.makedirs(saved_path + "ImageSets/原创 2021-09-27 16:21:30 · 301 阅读 · 0 评论 -
【脚本转换】VOC数据集划分脚本
import osfrom glob import globfrom sklearn.model_selection import train_test_splitsaved_path = "/home/wxd/CP/train/VOCdevkit/VOC2007/" # 保存路径# 2.创建要求文件夹if not os.path.exists(saved_path + "ImageSets/Main/"): os.makedirs(saved_path + "ImageSets/原创 2021-09-25 15:18:37 · 165 阅读 · 0 评论 -
【环境配置】设计模式学习—Python版本
原创 2021-09-07 10:33:33 · 98 阅读 · 0 评论 -
【设计模式】面向对象设计SOLID原则—里氏替换原则
什么是里氏替换原则所有引用父类的地方必须能透明地使用其子类地方必须能透明地使用其子类的对象。class User(object): def print_name(self): passclass VipUser(User): def print_name(self): """ 保证参数和返回值类型需要和父类一样 :return: """ passdef show_name(u):原创 2021-09-02 10:59:33 · 88 阅读 · 0 评论 -
【设计模式】面向对象设计SOLID原则—开放封闭原则
什么是开放封闭原则一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应该在不修改原代码的情况下进行修改。注意在实际开发中,可能没有这么死,但是尽量不要更改...原创 2021-09-02 10:55:20 · 143 阅读 · 0 评论 -
【设计模式】面向对象设计SOLID原则—依赖倒置原则
什么是依赖倒置原则高层模块不应该依赖底层模块,二者都应该依赖抽象。抽象不应该依赖细节,细节应该应该依赖抽象。要针对接口编程,而不是针对实现变成。from abc import ABCMeta, abstractmethod# 接口,抽象不应该依赖细节class Payment(metaclass=ABCMeta): @abstractmethod def pay(self, money): pass # 底层代码和高层代码都是细节,细节应该依赖抽象原创 2021-09-02 10:52:05 · 126 阅读 · 0 评论 -
【设计模式】面向对象设计SOLID原则—单一职责原则
不要存在多于一个导致类变更的原因,一个类只负责一项职责,一个类只做一件事。原创 2021-09-02 10:42:23 · 203 阅读 · 0 评论 -
【设计模式】面向对象设计SOLID原则—接口隔离原则
什么是接口隔离原则使用多个专门的接口,而不是用单一的总接口,即客户端不应该依赖那些它不需要的接口例子反面教材from abc import ABCMeta, abstractmethodclass Animal(metaclass=ABCMeta): @abstractmethod def walk(self): pass @abstractmethod def swim(self): pass @abs原创 2021-09-02 10:30:39 · 136 阅读 · 0 评论 -
【PyTorch总结】self.modules()与self.children()的区别
children()与modules()都是返回网络模型里的组成元素,但是children()返回的是最外层的元素,modules()返回的是所有的元素,包括不同级别的子元素。以下面的代码为例:import torchimport torch.nn as nnclass Net(nn.Module): def __init__(self, in_channels,num_classes=10): super().__init__() self.layer =原创 2021-07-04 15:37:08 · 540 阅读 · 0 评论 -
【PyTorch总结】手撸基本的数字识别
# Importsimport torchimport torch.nn as nnimport torch.optim as optimimport torch.nn.functional as Ffrom torch.utils.data import DataLoader, dataloaderimport torchvision.datasets as datasetsimport torchvision.transforms as transforms# Create Ful原创 2021-07-02 21:43:03 · 232 阅读 · 0 评论 -
【Python总结】Python argparse模块学习
Python中的argparse模块是用来方便用户在命令行传参使用的。主要由以下3步组成创建一个解析器添加参数解析参数import mathimport argparseparser = argparse.ArgumentParser(description='Calculate volume of a Cylinder') #创建一个解析器# 添加参数parser.add_argument('-r', '--radius', type=int, metavar='', requir原创 2021-07-02 00:23:42 · 96 阅读 · 0 评论 -
【Python总结】python字符串前面加‘r’的意思
在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和\会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上’r’。...原创 2021-07-02 00:18:51 · 737 阅读 · 0 评论 -
【Python总结】Python中的文档字符串
name = "Emma"def greet(name): """This function greets to the person passed in as parameter""" print("Hello, " + name + ". Good morning!")greet(name)函数头之后的第一个字符串称为docstring,是文档字符串的缩写。它用于简要解释函数的作用。在上面的示例中,我们在函数头的正下方有一个docstring。我们通常使用三引号,以便docstri原创 2021-07-02 00:16:56 · 343 阅读 · 0 评论