2010-03-07 32 views
6

Giả sử bạn đang gọi một hàm, trong đó rõ ràng là cần phải chia nhỏ câu lệnh thành vài dòng, vì mục đích dễ đọc. Tuy nhiên, có ít nhất hai cách để làm điều đó:Kiểu mã hóa - giữ dấu ngoặc đơn trên cùng một dòng hoặc dòng mới?

Bạn có làm điều này:

return render(request, template, 
       { 
       'var1' : value1, 
       'var2' : value2, 
       'var3' : value3 
       } 
      ) 

Hoặc bạn thà làm điều đó:

return render \ 
(
    request, template, 
    { 
     'var1' : value1, 
     'var2' : value2, 
     'var3' : value3 
    } 
) 

Hoặc, hãy đề nghị định dạng của riêng bạn. Cũng vui lòng liệt kê các lý do tại sao bạn sẽ sử dụng một định dạng cụ thể và điều gì đó sai với định dạng khác.

Cảm ơn

Trả lời

8

Tôi muốn có thể làm:

return render(
    request, 
    template, 
    { 
     'var1' : value1, 
     'var2' : value2, 
     'var3' : value3 
    } 
) 

tôi sẽ giữ khung trên cùng một dòng, do đó tìm kiếm render( làm việc. Và bởi vì tôi thấy nó rõ ràng hơn. Nhưng tôi sẽ đặt tất cả các đối số trên các dòng mới.

+0

điểm tuyệt vời trên tìm kiếm "render (" – Art

+0

1 Thú vị Tôi chưa bao giờ nghĩ đến phong cách này –

9

Chính thức của Python PEP-8 đề xuất thẻ đầu tiên.

2

Hình thứ hai có vẻ như nó đã thoát khỏi chương trình C [# +] *. Tiếp tục dòng ngược lại là xấu xí, dễ bị rắc rối với dấu cách và không có lý do gì để sử dụng nó khi bạn có() hoặc [] để sử dụng.

+0

1 không bao giờ sử dụng xuyệc ngược, luôn luôn có một lựa chọn tốt hơn.. (tiếp tục bên trong(), [], {}) – u0b34a0f6ae

+0

từ __future__ niềng răng nhập khẩu –

+0

Có lẽ bạn có nghĩa là 'từ __future__ niềng răng nhập khẩu'.' từ SOhelp nhập khẩu backticks' –

7

tôi sẽ làm:

vars = { 
    'var1' : value1, 
    'var2' : value2, 
    'var3' : value3, 
} 
return render(request, template, vars) 
+1

+1, thanh lịch nhất của các phương pháp được đề xuất –

+3

+1 Chỉ vì bạn * có thể * làm tất cả trong một câu lệnh không có nghĩa là bạn * nên *. –

Các vấn đề liên quan