我有一个执行一些简单数据操作的类,我需要三个方法:set、add、sub:classEntry():#over-simplifiedbutshouldbeenoughforthequestiondef__init__(self,value):self.set(value)defset(self,value):self.value=valuedefadd(self,value):self.value+=valuedefsub(self,value):self.value-=value问题在于“set”方法,但将其定义为类方法不应与“set()”内置函数冲突。PythonStyleGuid
如果我从第3方导入模块,但他们使用的语法与我的不一致,有没有好的方法来pep8呢?示例:我需要使用一个我无法编辑的第3方模块,而且它们的命名约定不太好。例子:thisIsABase_function(self,a,b)我有一些代码将名称命名为pep8,但我想知道如何让新的pep8名称可以访问这些函数?def_pep8ify(name):"""PEP8ifyname"""importreif'.'inname:name=name[name.rfind('.')+1:]ifname[0].isdigit():name="level_"+namename=name.replace(".","
根据PEP8模块应该是小写的。一些流行的(例如Gtk)遵循CamelCase约定。为了拥有一个pythonic代码库并减少此策略漏洞的溢出,似乎以下是处理此问题的干净方法:importCamelcasedModuleascamelcased_modulelinters,例如pep8-naming然而声称这种做法违反了PEP8并抛出一个N813错误。由于我未能在PEP8中找到任何直接解决这个问题的段落,我想知道要走哪条路才能忠于python的禅宗。站点注释:以前这个问题提到Gtk作为例子:fromgi.repositoryimportGtkasgtk这是一种误导,因为Gtk是一个类而不是
根据PEP8,从方法返回值的推荐方式是什么?为什么?我尝试在PEP8中查找关于此的文档,但找不到任何内容。方法一defmethod():a=meth2()returna方法二defmethod():returnmeth2() 最佳答案 PEP8没有指定您是否应该返回变量还是函数。但是,它确实说你应该保持一致:Beconsistentinreturnstatements.Eitherallreturnstatementsinafunctionshouldreturnanexpression,ornoneofthemshould.Ifa
这个问题在这里已经有了答案:HowcanIdoalinebreak(linecontinuation)inPython?(10个答案)关闭6年前。我有这行代码:assert0我希望pep8快乐,但我不明白如何打破这条线。我尝试在逗号后断开并得到无效语法。我试过用额外的“”打破字符串,如HowtobreaklongstringlinesforPEP8compliance?.PEP8很高兴,但断言只产生了消息的前半部分。中断长断言字符串的正确方法是什么?
为了改进我的Python风格,我在我的一个脚本上运行了PEP-8风格检查器,它提示一些我不知道如何修复的东西。脚本的序言是这样的:#!/bin/envpython3importsysimportosexe_name=os.path.basename(os.path.realpath(__file__))bin_dir=os.path.dirname(os.path.realpath(__file__))inst_dir=os.path.dirname(bin_dir)sys.path.insert(0,inst_dir+'/path/to/packages')importmypacka
我读了PEP8想知道(虚构的)我创建一个名称如__foo__的对象是否是个好主意。PEP8关于__double_leading_and_trailing_underscore__是这样说的:Neverinventsuchnames;onlyusethemasdocumented.我的问题是:谁?我是一名程序员。我为其他程序员编写API。Python是由程序员实现的。实现的语言引用是由程序员或至少是前程序员编写的,使用我的API的程序员将编写一些可能会或可能不会被其他程序员使用的东西。现在展开了,当PEP8说“永远不要发明这样的名字”时,他们指的是哪个程序员?有人显然被鼓励发明这样的名字
谁能帮我理解PEP479是关于什么的?我正在阅读文档,但无法理解它。摘要说:ThisPEPproposesachangetogenerators:whenStopIterationisraisedinsideagenerator,itisreplaceditwithRuntimeError.(Moreprecisely,thishappenswhentheexceptionisabouttobubbleoutofthegenerator'sstackframe.)例如,像这样的循环是否仍然有效?it=iter([1,2,3])try:i=next(it)whileTrue:i=next
通常在Python中,应该使用_来指示未使用的参数。defexample_basic(unused):pass成为defexample_basic(_):pass然后如果有多个未使用的参数,多个_不能使用,因为它们会发生冲突,所以使用*_:defexample_multiple(unused1,unused2):pass成为defexample_multiple(*_):pass最后,如果有多个不相邻的参数未被使用,应该怎么办?defexample_non_adjacent(unused1,used,unused2):returnused使用多个_仍然不起作用,使用*_也不起作用,因为
首先,当我问到单位时,我指的是测量单位,例如英寸、英尺、像素、单元格。我指的不是像int和float这样的数据类型。Wikipedia将其称为逻辑数据类型,而不是物理数据类型。我想知道命名变量的最佳方式。这里有一些代码来解决我要问的问题:board_length=8#ininchesboard_length=8*12#Convertfromfeettoinches请注意,它们都是整数(或float,我不在乎),但我更改了单位。我还保持了相同的变量名称。我可以建立一个约定,这就是这个问题的目的。没有指导,我可能会做这样的事情:board_length=8board_length_inch