Python demo中的(我不懂的表达和技巧)

Python F + 双引号表达式【格式化输出】

主要用于格式化输出,

setting = f"{args.env}_{args.seed}"
buffer_name = f"{args.buffer_name}_{setting}"

简单快捷起名字

变量定义中的if-else

a = b if c < d else 0

如果c < d 那么a = b,否则 a = 0

utils是什么库?

utils一般来说是自己写的一个工具包py文件,存储自己需要的类和对象函数等。

不必要的变量名可以用短划线代替_

如在循环中,循环变量只是次数无重要意义就不用命名(接收函数返回值也是)

解析命令行参数和选项

参考链接: https://www.cnblogs.com/yibeimingyue/p/13800159.html

import argparse
parser = argparse.ArugmentParser()
parser.add_argument()
parser.parse_args()

主要使用场景:在终端窗口输入训练的参数和选项
实现步骤可理解为:导入模块 -- 创建解析对象 -- 向对象中添加关注的命令行参数和选项 -- 调用方法进行解析,解析成功之后即可使用。

变量的深拷贝和浅拷贝

参考链接:https://blog.csdn.net/xiongzai2016/article/details/108652409

copy.deepcopy

该函数是将一个变量的值赋值给另一个变量(此时两个变量地址不同),可以防止变量间相互干扰。
传统使用等于号 = 赋值是通过赋值的方式使得两个变量地址相同(指向内存中的同一个地址),这种情况下改变一个值另一个也会随着改变。

Python getattr() 函数

参考链接:1. https://www.runoob.com/python/python-func-getattr.html 2. https://www.bbsmax.com/A/kjdwNoMA5N/
该函数用于返回一个对象属性值

getattr(object, name[, default])

其中,object -- 对象,name -- 字符串,对象属性,default -- 默认返回值,如果不提供该参数没有对应属性时将触发 AttributrError。


如果获取的是一个方法,则后边加一个括号表示执行该方法,括号里边是对应需要的参数。

Python Super 函数

参考链接:https://blog.csdn.net/qq_42790344/article/details/123666392
该函数主要用于确定子类继承父类时执行的先后顺序,可理解为执行父类的__init__函数,在super之前是无法访问父类的成员变量的。
例子在参考链接里介绍的非常详细!

变量前加*

参考链接:https://blog.csdn.net/qq_38978225/article/details/125184692
构造函数时代表接收元组形式的参数;
构造array时,可看做一个生成器,不断将要输入的东西生成出来;
构造函数时形参前加入两个**,代表接收字典形式的参数。

代码中出现的 \

参考链接:https://cloud.tencent.com/developer/article/2062538

总结:为了换行

posted @ 2022-10-17 14:38  芋圆院长  阅读(40)  评论(0编辑  收藏  举报