使用变量构造一个长Python字符串

Ami*_*tad 1 python string string-formatting python-3.x f-string

我有一个python字符串,基本上是3个变量的串联.我用f-strings它来使它成为一个字符串.它现在看起来像这样:

my_string = f'{getattr(RequestMethodVerbMapping, self.request_method).value} {self.serializer.Meta.model.__name__} {self.request_data['name']}'
Run Code Online (Sandbox Code Playgroud)

这给了我输出:

Create IPGroup test-create-demo-098
Run Code Online (Sandbox Code Playgroud)

正是我想要的输出.然而,很明显线条太长了,现在Pylint开始抱怨所以我尝试使用多线分解线f-strings,如下所示:

my_string = f'''{getattr(RequestMethodVerbMapping, self.request_method).value} 
                {self.serializer.Meta.model.__name__} {self.request_data['name']}'''
Run Code Online (Sandbox Code Playgroud)

Pylint现在很高兴,但我的字符串看起来像这样:

Create 
                  IPGroup test-create-demo-098
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方法是什么,这样我就可以将我的字符串放在一行中,并且还可以使Pylint静音超过120个字符的行?

ale*_*cxe 7

这本身就是一个很长的路线,而不是试图将大量的东西整合到一行中,我会将其分解并应用"提取变量"重构方法以提高可读性:

request_method_name = getattr(RequestMethodVerbMapping, self.request_method).value
model_name = self.serializer.Meta.model.__name__
name = self.request_data['name']

my_string = f'{request_method_name} {model_name} {name}'
Run Code Online (Sandbox Code Playgroud)

我认为PythonZen中的以下智慧很适合我们的问题:

稀疏优于密集.

可读性很重要.