1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PEP8で指摘される「1行が長すぎる」問題への対処

Last updated at Posted at 2024-09-26

PEP8で指摘される「1行が長すぎる」問題に対処するには、いくつかの方法があります。具体例を交えて紹介します。

1. 括弧を使った複数行への分割

長い関数呼び出しや条件文を括弧で囲み、複数行に分割します。

# 修正前
result = some_long_function_name(first_parameter, second_parameter, third_parameter, fourth_parameter)

# 修正後
result = some_long_function_name(
    first_parameter,
    second_parameter,
    third_parameter,
    fourth_parameter
)

2. 演算子の後での改行

長い算術式や論理式を演算子の後で改行します。

# 修正前
total_sum = item1_price + item2_price + item3_price + item4_price + item5_price + tax_amount

# 修正後
total_sum = (
    item1_price +
    item2_price +
    item3_price +
    item4_price +
    item5_price +
    tax_amount
)

3. リスト内包表記の分割

長いリスト内包表記を複数行に分割します。

# 修正前
squared_numbers = [x**2 for x in range(100) if x % 2 == 0 and x % 3 == 0]

# 修正後
squared_numbers = [
    x**2
    for x in range(100)
    if x % 2 == 0 and x % 3 == 0
]

4. 文字列の連結

長い文字列を複数行に分割します。

# 修正前
long_message = "This is a very long message that exceeds the recommended line length limit of 79 characters according to PEP8."

# 修正後
long_message = (
    "This is a very long message that exceeds "
    "the recommended line length limit of 79 "
    "characters according to PEP8."
)

5. 変数名の短縮

場合によっては、長い変数名を短くすることで行の長さを減らせます。ただし、可読性を損なわないよう注意が必要です。

# 修正前
total_number_of_items_in_shopping_cart = calculate_total_items(shopping_cart)

# 修正後
total_items = calculate_total_items(shopping_cart)

これらの方法を適切に組み合わせることで、PEP8の推奨する行の長さ(79文字または99文字)を守りつつ、コードの可読性を維持できます[1][2][3]。ただし、チームの合意があれば99文字まで緩和することも可能です。重要なのは一貫性を保ちつつ、コードの理解しやすさを優先することです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?