IF / ELIF语句中的换行格式[Python3]

时间:2015-08-10 21:41:30

标签: python

您将如何格式化此代码?我知道在定义函数之前应该有两个换行符。为了便于阅读,您会在if new_requests_objectid > 0:之后再换一次换行符吗?在def assign_uniquekey_request():assign_uniquekey_request()之后呢?

或许它的方式很好。

if new_requests_objectid > 0:
    # get last data object from Request table
    last_request = Popen(['curl',
                          '-H', 'application-id: %s' % backendless_appid,
                          '-H', 'secret-key: %s' % backendless_sk,
                          '-H', 'application-type: REST',
                          '-H', 'Content-Type: application/json',
                          '-X', 'GET',
                          '-v', 'https://api.backendless.com/v1/data/Request/last'],
                         stdout=PIPE).communicate()[0]

    last_request_str = last_request.decode(encoding='utf-8')

    last_objectid = json.loads(last_request_str, strict=False)['objectId']

    # generate unique key for last entry in Request table
    uniquekey_request = ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits)
                                for _ in range(6))


    # assign unique key to last entry in Request table
    def assign_uniquekey_request():
        Popen(['curl',
               '-H', 'application-id: %s' % backendless_appid,
               '-H', 'secret-key: %s' % backendless_sk,
               '-H', 'application-type: REST',
               '-H', 'Content-Type: application/json',
               '-X', 'PUT',
               '-d', '{\"requestId\":\"%s\"}' % uniquekey_request,
               '-v', 'https://api.backendless.com/v1/data/Request/%s' % last_objectid])

    assign_uniquekey_request()
else:
    pass

1 个答案:

答案 0 :(得分:1)

来自PEP 0008

  

使用两个空行环绕顶级函数和类定义。

     

类中的方法定义由一个空行包围。

     

可以使用额外的空白行(谨慎地)来分隔相关功能组。在一堆相关的单行(例如,一组虚拟实现)之间可以省略空行。

     

谨慎地在函数中使用空行来表示逻辑部分。

您的代码的换行格式看起来很好。请参阅以下示例:

class A:
    def __init__(self):
        pass

    def actions(self):
        if 1:
            pass
        else:
            pass

        print(1)
        print(37)
        print(22)

        return

请注意,换行规则是严格定义的,如果您在交互式解释器中工作,则不遵循此准则,您只需要在刚完成写入的块时添加额外的换行符。上面的类需要像这样输入解释器:

>>> class A:
...     def __init__(self):
...         pass
...     def actions(self):
...         if 1:
...             pass
...         else:
...             pass
...         print(1)
...         print(37)
...         print(22)
...         return
...
>>>