Hướng dẫn python f-string multiple lines - chuỗi f python nhiều dòng

Tôi đang cố gắng viết mã tuân thủ PEP-8 cho một dự án trong nước và tôi có một dòng với chuỗi F dài hơn 80 ký tự

Hướng dẫn python f-string multiple lines - chuỗi f python nhiều dòng
- Đường mỏng rắn gần dấu chấm tại self.text là nhãn 80 char.

Tôi đang cố gắng chia nó thành các dòng khác nhau theo cách pythonic nhất nhưng aswer duy nhất thực sự hoạt động là một lỗi cho linter của tôi

Mã làm việc:

def __str__(self):
    return f'{self.date} - {self.time},\nTags:' + \
    f' {self.tags},\nText: {self.text}'

Output:

2017-08-30 - 17:58:08.307055,
Tags: test tag,
Text: test text

Linter nghĩ rằng tôi không tôn trọng E122 từ PEP-8, có cách nào để có được chuỗi đúng và tuân thủ mã không?

Hướng dẫn python f-string multiple lines - chuỗi f python nhiều dòng

Tế bào thần kinh

4.7104 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu Đồng4 gold badges33 silver badges54 bronze badges

Hỏi ngày 30 tháng 8 năm 2017 lúc 16:00Aug 30, 2017 at 16:00

12

Từ hướng dẫn kiểu cho mã Python:

Cách ưa thích để gói các đường dài là bằng cách sử dụng tiếp tục dòng ngụ ý của Python bên trong ngoặc đơn, ngoặc và thanh giằng.

Vì điều này, sau đây sẽ giải quyết vấn đề của bạn theo cách tuân thủ PEP-8.

return (
    f'{self.date} - {self.time}\n'
    f'Tags: {self.tags}\n'
    f'Text: {self.text}'
)

Các chuỗi Python sẽ tự động kết nối khi không được phân tách bằng dấu phẩy, vì vậy bạn không cần phải gọi rõ ràng

2017-08-30 - 17:58:08.307055,
Tags: test tag,
Text: test text
0.

Đã trả lời ngày 1 tháng 3 năm 2019 lúc 18:59Mar 1, 2019 at 18:59

Hướng dẫn python f-string multiple lines - chuỗi f python nhiều dòng

NoddyNoddynoddy

3.1573 huy hiệu vàng25 Huy hiệu bạc21 Huy hiệu đồng3 gold badges25 silver badges21 bronze badges

7

Tôi nghĩ nó sẽ là

return f'''{self.date} - {self.time},
Tags: {self.tags},
Text: {self.text}'''

Đã trả lời ngày 30 tháng 8 năm 2017 lúc 16:07Aug 30, 2017 at 16:07

Joran Beasleyjoran BeasleyJoran Beasley

107K12 Huy hiệu vàng150 Huy hiệu bạc175 Huy hiệu đồng12 gold badges150 silver badges175 bronze badges

6

Bạn có thể sử dụng dấu ngoặc đơn ba lần hoặc dấu ngoặc kép ba, nhưng đặt F F ở đầu chuỗi:

Triple Trích dẫn đơn

return f'''{self.date} - {self.time},
Tags:' {self.tags},
Text: {self.text}'''

Báo giá gấp đôi

return f"""{self.date} - {self.time},
Tags:' {self.tags},
Text: {self.text}"""

Lưu ý rằng bạn không cần sử dụng "\ n" vì bạn đang sử dụng chuỗi nhiều dòng.

Đã trả lời ngày 25 tháng 9 năm 2019 lúc 2:28Sep 25, 2019 at 2:28

Hướng dẫn python f-string multiple lines - chuỗi f python nhiều dòng

lmiguelvargasflmiguelvargasflmiguelvargasf

57.2K43 Huy hiệu vàng213 Huy hiệu bạc215 Huy hiệu Đồng43 gold badges213 silver badges215 bronze badges

1

Như đã đề cập bởi @Noddy, cách tiếp cận cũng hoạt động cho biểu thức gán biến:

var1 = "foo"
var2 = "bar"
concat_var = (f"First var is: {var1}"
              f" and in same line Second var is: {var2}")
print(concat_var)

nên cung cấp cho bạn:

First var is: foo and in same line Second var is: bar

Đã trả lời ngày 18 tháng 7 năm 2019 lúc 5:14Jul 18, 2019 at 5:14

Codarriorcodarriorcodarrior

4444 Huy hiệu bạc5 Huy hiệu Đồng4 silver badges5 bronze badges

Bạn có thể trộn các kiểu trích dẫn đa dòng và chuỗi thông thường và dây F:

foo = 'bar'
baz = 'bletch'
print(f'foo is {foo}!\n',
      'bar is bar!\n',
      f"baz is {baz}!\n",
      '''bletch
      is
      bletch!''')

In này (lưu ý thụt lề):

foo is bar!
 bar is bar!
 baz is bletch!
 bletch
      is
      bletch!

Đã trả lời ngày 15 tháng 3 năm 2021 lúc 20:53Mar 15, 2021 at 20:53

Hướng dẫn python f-string multiple lines - chuỗi f python nhiều dòng

Timur Shtatlandtimur ShtatlandTimur Shtatland

Huy hiệu vàng 11K22 gold badges26 silver badges37 bronze badges