中国史之【黄帝即位】
约公元前2697年 黄帝继承了有熊国君的王位。在黄帝成为氏族首领之后 有熊氏的势力得到迅速发展 并形成一个独立的黄帝部落。
-来源 全历史APP
今天讲python的编码风格以及文件结构。有需要的也可以直接去我的github查看全部笔记。
俗话说 “好记性不如烂笔头” 多写写多记记 总不会错。多一些不为什么的坚持 少一些功利主义的追求。
对于环境的配置 可以参考 手把手实战配置深度学习环境 win10版 以及手把手实战配置深度学习环境 Ubuntu20.04版 。
1、语句语法 表示续行 #是单行注释 “” 或’’’ ‘’ 是多行注释每一个python文件都可以当做一个模块 所以模块通常都是可调用函数 而不是直接的语句因为import进来会直接运行语句了 所以使用主程序name main来实现测试模块的效果 2、编码风格 每个模块文件、类、函数开头都可以用 “或” “”“写文件描述 可以使用”.doc 来查看变量名的首字母只能用字母或者下划线 不能用数字 因为担心变量名和数值混淆这里举一个函数为例
def resnet18(pretrained False): Constructs a ResNet-18 model. Args: pretrained (bool): If True, returns a model pre-trained on ImageNet model ResNet(BasicBlock, [2, 2, 2, 2]) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls[ resnet18 ])) return model
通常定义一个函数 有函数模块的功能描述和参数描述 就比较清晰了。
print(str.__doc__) # 使用__doc__获取内置函数的介绍文档
输出结果
str(object ) - str str(bytes_or_buffer[, encoding[, errors]]) - str Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to strict .
再补充一下命名规则
_x不会被from module import *语句导入x是系统定义的变量名 对python解释器有特殊意义__x是类的本地变量 在类的内部使用交互模式下 _ 用于保存最后表达式的结果 3、python文件结构1 起始行 对于linux系统 可以使用#/usr/bin/env python 对于windows 不用写明coding UTF-8 因为python3默认就是UTF-8
2 模块文档 单行用 “ 多行用” “” 如 This is a test module.
3 模块导入 如import sys
4 全局 变量定义 如Flag False
5 类定义(若有) 如
class F(object): this is a F class. # TODO
6 函数定义 若有 如
def test(): test function f F() # 类的实例化 # TODO
7 主程序 实现测试效果
if name main : test()
补充
1、没有缩进的语句 在模块被导入时就会执行 所以除了那些真正需要执行的代码以外 所有的功能代码都通过函数来建立 所以仅在主程序模块中编写大量的执行代码 其他都应该为类或函数以供调用
2、每个模块都有一个名为name的内建变量 此变量值会根据调用此模块的方式发生变化 如果此文件被作为模块导入 则name的值为模块名称 如果此文件被直接执行 则name的值为 main 所以编写if name语句是有利于模块的封装与测试。
【声明】 学习笔记基于互联网上各种学习资源的个人整理。
以上是本期内容 下期介绍python的对象以及主要的数据类型。
我叫小保 一名计算机视觉爱好者、学习者、追随者 欢迎关注我一起学习。



