欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python面试题之编码规范

程序员文章站 2024-02-13 20:50:28
...

阅读源

python-面试通关宝典

什么是 PEP8

PEP是 Python Enhancement Proposal 的缩写,翻译过来就是 Python增强建议书
简单说就是一种编码规范,是为了让代码“更好看”,更容易被阅读
具体可参考:
https://www.python.org/dev/peps/pep-0008/

什么是 Python 之禅

import this

什么是文档字符串

Python有一个很奇妙的特性,称为 文档字符串 ,它通常被简称为 docstrings 。DocStrings是一个重要的工具,由于它帮助你的程序文档更加简单易懂,你应该尽量使用它。你甚至可以在程序运行的时候,从函数恢复文档字符串。
使用魔法方法'__doc__'可以打印docstring的内容

函数注解

def add(x:int, y:int) -> int:
    return x + y
用 : 类型 的形式指定函数的参数类型,用 -> 类型 的形式指定函数的返回值类型

Python 命名规范

命名规范:
1. 变量名只能是字母、数字和下划线的任意组合;
2. 变量名只能以字母或下划线开头;
3. 变量名禁止使用关键字
4. 变量名区分大小写

命名风格:
风格一:驼峰体(大驼峰式)
	类

风格二:下划线
	普通变量、全局变量

命名约定:
1. 变量名不要使用中文和拼音(为了国际化)
2. 变量名要有意义
	(1) 列表:xxx_list / xxx_ls
	(2) 元组:xxx_tuple / xxx_tp
	(3) 字符串:xxx_str / xxx_s1 / xxx_s2
	(4) 单个字符:xxx_ch
	(5) 字典:xxx_dict / xxx_dc
	(6) 集合:xxx_set
	(7) x、y、z:用来表示浮点型
	(8) 除了(7)以外的字符,都表示整数,尤其是i、j、k、m、n
3. 尽量避免单字符名称,用于计数器和迭代器除外
4. 普通变量用小写字母,单词之间用 _分隔
5. 全局变量全用大写字母,单词之间用 _分隔
6. 关于变量的“Internal”和“Public”
	Internal(以_或者__及以上开头的变量)表示仅模块内使用或者在类中是保护或私有的
	Public,非Internal变量

	Type			Public				Internal
	模块			lower_with_under		_lower_with_under
	包			lower_with_under		
	类			CapWords(大驼峰式)   _CapWords
	异常类              CapWords
	函数  		lower_with_under()	        _lower_with_under()
	全局/类常量     CAPS_WITH_UNDER 	_CAPS_WITH_UNDER
	全局/类变量     lower_with_under		_lower_with_under
	实例变量          lower_with_under            _lower_with_under (protected) or 
	                                                                __lower_with_under (private)
	方法                 lower_with_under            _lower_with_under (protected) or
	                                                                __lower_with_under (private)
	函数/方法参数  lower_with_under
	局部变量          lower_with_under

关于下划线的命名约定
1. 单领先下划线		
例如:
	_var	
含义:		
	指示变量供内部使用。通常不由Python解释器强制执行(通配符导入除外)仅作为程序员的提示

2. 单尾拖尾下划线
例如:
	var_
含义:
	避免与Python的关键字命名冲突

3. 双重领先下划线
例如:
	__var
含义:
	指示变量在类的上下文中是私有的。由Python解释器强制执行(触发名称修改)

4. 双重领先和尾随下划线
例如:
	__var__
含义:
	表示Python语言定义的特殊方法。避免这种命名方案为自己的属性

5. 单下划线
例如:
	_
含义:
	用作临时或者无意义变量的名称(不关心)

Python 注释有几种

单行注释,多行注释,docstring注释

如何优雅地给一个函数加注释

"""这一行:函数(函数、方法、生成器)是做什么的(函数的作用)概述

这一行:对函数详细的描述

Args: / :params 参数名字: (__表示两个空格,节的内容都应该缩进2个空格)
__参数名字: 类型,含义(含义,如果>80 chars,则使用2或4个空格悬挂缩进)
__*args: 描述args
__*kwargs: 描述kwargs

Returns: / Yields:
__类型,含义,还可以举例(如果返回为None,可以省略)

Raises:
__IOError: An error occurred accessing the bigtable.Table object.
"""

如何优雅地给一个类加注释

"""这一行:类是做什么的(类的作用)概述

这一行:对类详细的描述

Attributes: (如果类包含公共属性的话,文档字符串需要书写一个Attributes段)
__sports: 类型,含义
__computers: 类型,含义
"""

Python 代码缩进中是否支持 Tab 和空格混用

支持,Python 并没有强制要求你用Tab或者用空格缩进,
但根据 PEP8 规范,不要使用Tab来缩进,也更不要Tab和空格混用,
推荐4个半角空格。

是否可以在一句 import 中导入多个库

可以的
import json,random,requests
但根据 PEP8 ,导入应该独占一行

给 Python 文件命名时需要注意什么

全小写,单词之间使用下划线分隔

列举几个规范 Python 代码风格的工具

pylint,black,pycharm也带有pep8的代码规范工具