当前位置:  开发笔记 > 编程语言 > 正文

在内置函数和阴影名称的变量名前面/之后添加"_"

如何解决《在内置函数和阴影名称的变量名前面/之后添加"_"》经验,为你挑选了1个好方法。

我有以下示例:

def get_max_close(symbol): # Example 1
    df = pd.read_csv("../../ml4t/data/{}.csv".format(symbol))
    get_max = df["Close"].max()
    res = {symbol: float(get_max)}
    return res


if __name__ == "__main__":
    symbol = ["AAPL", "IBM"] # Example 2
    max_close = {"Max": [get_max_close(s) for s in symbol]}
    print max_close

我的示例1显示了以下问题:

This inspection detects shadowing names defined in outer scopes

示例2是具有相同名称的外部范围变量.我不想更改代码,我记得在其中一个PEP中读取我可以添加_到此变量以使其工作.

我还记得读过那些_事情的放置(就像骆驼套管在功能上的重要性一样).

我相信_在变量名之前放置(即._symbol)是实现这一目的的正确方法.之后放置它将专门用于当我有一个与内置函数同名的变量(即.dict_)时.

我把这两个混在了一起吗?你能告诉我相关pep的网址吗?https://www.python.org/dev/peps/ ...



1> Martijn Piet..:

这里没有什么需要解决的.这只是来自IDE的警告,而不是Python.

IDE指出该名称symbol既用作全局(在__name__ == '__main__'块中),也用作get_max_close()函数中的本地名称.这很好,而不是你需要关注的事情.

该建议的目的是使用Python的本身,所提供的名称内置的名称,如list,id,strall.然后,您可以将变量重命名为id_all_不存在尝试使用内置的风险.这不是这里的情况.

如果您使用了该名称_symbol,那么按照惯例,您发出的信号表明该名称被认为是您的实现的私有名称(例如,使用您的代码的任何人都不应该依赖于未来版本中以相同形式存在的名称).

你可以使用不同的名字也干脆,你不具备使用symbol_.我只是坚持symbol,这是一个完全有效的本地名称,IDE在这里过于热心.

您正在考虑的PEP是PEP 8 - Python代码样式指南,在命名样式部分中指出:

_single_leading_underscore:弱"内部使用"指标.例如from M import *,不会导入名称以下划线开头的对象.

single_trailing_underscore_:用于避免与Python关键字冲突的约定,例如

Tkinter.Toplevel(master, class_='ClassName')

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有