Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

Đến từ nền C#, quy ước đặt tên cho các biến và tên phương thức thường là Camelcase hoặc Pascalcase:

// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()

Trong Python, tôi đã thấy những điều trên nhưng tôi cũng đã thấy dấu gạch dưới được sử dụng:

# python example
this_is_my_variable = 'a'
def this_is_my_function():

Có một phong cách mã hóa dứt khoát hơn, dứt khoát hơn cho Python?

Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

Đã hỏi ngày 1 tháng 10 năm 2008 lúc 21:01Oct 1, 2008 at 21:01

0

Hướng dẫn theo phong cách Google Python có quy ước sau:

module_name, package_name, ClassName,

# python example
this_is_my_variable = 'a'
def this_is_my_function():
0,
# python example
this_is_my_variable = 'a'
def this_is_my_function():
1,
# python example
this_is_my_variable = 'a'
def this_is_my_function():
2,
# python example
this_is_my_variable = 'a'
def this_is_my_function():
3,
# python example
this_is_my_variable = 'a'
def this_is_my_function():
4,
# python example
this_is_my_variable = 'a'
def this_is_my_function():
5,
# python example
this_is_my_variable = 'a'
def this_is_my_function():
6,
# python example
this_is_my_variable = 'a'
def this_is_my_function():
7.

Một sơ đồ đặt tên tương tự nên được áp dụng cho

# python example
this_is_my_variable = 'a'
def this_is_my_function():
8

Đã trả lời ngày 7 tháng 12 năm 2011 lúc 22:44Dec 7, 2011 at 22:44

Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

John Sladejohn SladeJohn Slade

11.5k2 Huy hiệu vàng24 Huy hiệu bạc20 Huy hiệu đồng 202 gold badges24 silver badges20 bronze badges

8

David Goodger (trong "Code Like a Pythonista" ở đây) mô tả các đề xuất PEP 8 như sau:

  • # python example
    this_is_my_variable = 'a'
    def this_is_my_function():
    
    9 cho các hàm, phương thức, thuộc tính, biến

  • # python example
    this_is_my_variable = 'a'
    def this_is_my_function():
    
    9 hoặc
    name = "John"
    
    1 cho các hằng số

  • name = "John"
    
    2 cho các lớp học

  • name = "John"
    
    3 Chỉ tuân thủ các quy ước đã tồn tại trước

Đã trả lời ngày 2 tháng 10 năm 2008 lúc 3:53Oct 2, 2008 at 3:53

không giới hạnunmounted

32.6K15 Huy hiệu vàng61 Huy hiệu bạc61 Huy hiệu Đồng15 gold badges61 silver badges61 bronze badges

6

Như hướng dẫn phong cách cho mã Python thừa nhận,

Các quy ước đặt tên của thư viện Python là một chút lộn xộn, vì vậy chúng tôi sẽ không bao giờ có được điều này hoàn toàn nhất quán

Lưu ý rằng điều này chỉ đề cập đến thư viện tiêu chuẩn của Python. Nếu họ không thể có được sự nhất quán đó, thì hầu như không có nhiều hy vọng có một quy ước nói chung cho tất cả các mã Python, có phải không?

Từ đó, và cuộc thảo luận ở đây, tôi sẽ suy luận rằng đó không phải là một tội lỗi khủng khiếp nếu người ta tiếp tục sử dụng ví dụ: Các quy ước đặt tên của Java hoặc C#(rõ ràng và được thiết lập tốt) cho các biến và chức năng khi vượt qua Python. Tất nhiên, hãy ghi nhớ rằng tốt nhất là phải tuân theo bất kỳ phong cách phổ biến nào cho một cơ sở mã / dự án / nhóm / nhóm. Như hướng dẫn phong cách Python chỉ ra, tính nhất quán nội bộ quan trọng nhất.not a horrible sin if one keeps using e.g. Java's or C#'s (clear and well-established) naming conventions for variables and functions when crossing over to Python. Keeping in mind, of course, that it is best to abide with whatever the prevailing style for a codebase / project / team happens to be. As the Python Style Guide points out, internal consistency matters most.

Hãy thoải mái gạt bỏ tôi như một kẻ dị giáo. :-) Giống như OP, tôi không phải là "Pythonista", dù sao cũng chưa.

Đã trả lời ngày 25 tháng 4 năm 2010 lúc 11:23Apr 25, 2010 at 11:23

Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

JonikjonikJonik

78.7K70 Huy hiệu vàng257 Huy hiệu bạc367 Huy hiệu đồng70 gold badges257 silver badges367 bronze badges

Như đã đề cập, PEP 8 nói rằng sử dụng

name = "John"
4 cho các biến, phương thức và chức năng.

Tôi thích sử dụng

name = "John"
4 cho các biến và
name = "John"
6 cho các phương thức và chức năng làm cho mã rõ ràng và dễ đọc hơn. Do đó, sau Zen của "rõ ràng của Python tốt hơn là tiềm ẩn" và "số lượng khả năng đọc"

Đã trả lời ngày 5 tháng 11 năm 2008 lúc 2:51Nov 5, 2008 at 2:51

Claytronclaytronclaytron

1.56513 Huy hiệu bạc20 Huy hiệu đồng13 silver badges20 bronze badges

3

Có PEP 8, như các câu trả lời khác cho thấy, nhưng Pep 8 chỉ là StyleGuide cho thư viện tiêu chuẩn và nó chỉ được coi là phúc âm trong đó. Một trong những sai lệch thường xuyên nhất của PEP 8 đối với các đoạn mã khác là đặt tên biến, đặc biệt là cho các phương thức. Không có kiểu chiếm ưu thế duy nhất, mặc dù xem xét khối lượng mã sử dụng hỗn hợp, nếu một người có thể thực hiện điều tra dân số nghiêm ngặt, người ta có thể sẽ kết thúc với một phiên bản PEP 8 với hỗn hợp. Có rất ít sai lệch khác từ PEP 8 khá phổ biến.

Đã trả lời ngày 1 tháng 10 năm 2008 lúc 21:12Oct 1, 2008 at 21:12

Thomas Woutersthomas WoutersThomas Wouters

127K23 Huy hiệu vàng146 Huy hiệu bạc122 Huy hiệu Đồng23 gold badges146 silver badges122 bronze badges

2

Hơn nữa với những gì @johnteslade đã trả lời. Hướng dẫn theo phong cách Python của Google có một số khuyến nghị khá gọn gàng,

Tên cần tránh

  • Tên ký tự đơn ngoại trừ các bộ đếm hoặc người lặp
  • Dashes (-) trong bất kỳ tên gói/mô-đun nào
  • name = "John"
    
    7 (dành riêng bởi Python)

Quy ước đặt tên

  • "Nội bộ" có nghĩa là nội bộ cho một mô -đun hoặc được bảo vệ hoặc riêng tư trong một lớp.
  • Chi tiêu một dấu gạch dưới (_) có một số hỗ trợ để bảo vệ các biến và chức năng mô -đun (không bao gồm nhập * từ). Chuẩn bị một dấu gạch dưới kép (__) cho một biến thể hiện hoặc phương thức phục vụ hiệu quả để làm cho biến hoặc phương thức riêng tư cho lớp của nó (sử dụng tên xáo trộn tên).
  • Đặt các lớp liên quan và các hàm cấp cao nhất với nhau trong một mô-đun. Không giống như Java, không cần giới hạn bản thân một lớp cho mỗi mô -đun.
  • Sử dụng
    name = "John"
    
    8 cho tên lớp, nhưng
    name = "John"
    
    9 cho tên mô -đun. Mặc dù có nhiều mô -đun hiện có có tên
    def display(name):
        print("John")
    
    0, nhưng điều này hiện không được khuyến khích vì nó khó hiểu khi mô -đun xảy ra được đặt theo tên của một lớp. ("Đợi đã - tôi đã viết
    def display(name):
        print("John")
    
    1 hoặc
    def display(name):
        print("John")
    
    2?")

Hướng dẫn bắt nguồn từ các khuyến nghị của Guido

Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

Đã trả lời ngày 20 tháng 6 năm 2018 lúc 23:49Jun 20, 2018 at 23:49

Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

Sufiyan Ghorisufiyan GhoriSufiyan Ghori

17.7K14 Huy hiệu vàng77 Huy hiệu bạc107 Huy hiệu đồng14 gold badges77 silver badges107 bronze badges

Hầu hết những người Python thích gạch dưới, nhưng ngay cả tôi đang sử dụng Python kể từ hơn 5 năm, tôi vẫn không thích họ. Họ chỉ trông xấu xí với tôi, nhưng có lẽ đó là tất cả các java trong đầu tôi.

Tôi chỉ đơn giản là thích Camelcase tốt hơn vì nó phù hợp hơn với cách các lớp được đặt tên, nó cảm thấy hợp lý hơn khi có

def display(name):
    print("John")
3 so với
def display(name):
    print("John")
4. Nếu bạn nhìn xung quanh trong Chỉ số mô -đun toàn cầu trong Python, bạn sẽ tìm thấy cả hai, đó là do thực tế đó là một bộ sưu tập các thư viện từ nhiều nguồn khác nhau . Tôi muốn nói rằng điểm mấu chốt là: Sử dụng bất cứ điều gì bạn thích hơn, đó chỉ là một câu hỏi về sở thích cá nhân.

cxrodgers

3,8672 Huy hiệu vàng23 Huy hiệu bạc28 Huy hiệu đồng2 gold badges23 silver badges28 bronze badges

Đã trả lời ngày 1 tháng 10 năm 2008 lúc 21:16Oct 1, 2008 at 21:16

AndréandréAndré

12.8k3 Huy hiệu vàng33 Huy hiệu bạc44 Huy hiệu đồng3 gold badges33 silver badges44 bronze badges

3

Cá nhân tôi cố gắng sử dụng Camelcase cho các lớp học, phương pháp và chức năng hỗn hợp. Các biến thường được phân tách (khi tôi có thể nhớ). Bằng cách này, tôi có thể nói trong nháy mắt chính xác những gì tôi đang gọi, thay vì mọi thứ đều giống nhau.

Đã trả lời ngày 2 tháng 10 năm 2008 lúc 3:24Oct 2, 2008 at 3:24

CrystalatticeCrystalatticecrystalattice

4.94111 Huy hiệu vàng41 Huy hiệu bạc56 Huy hiệu đồng11 gold badges41 silver badges56 bronze badges

5

Phong cách mã hóa thường là một phần của các tiêu chuẩn chính sách/công ước nội bộ của tổ chức, nhưng tôi nghĩ rằng nói chung, phong cách All_lower_case_underscore_separator (còn được gọi là snake_case) là phổ biến nhất trong Python.

Shawn Mehan

4.4639 Huy hiệu vàng30 Huy hiệu bạc 50 Huy hiệu Đồng9 gold badges30 silver badges50 bronze badges

Đã trả lời ngày 1 tháng 10 năm 2008 lúc 21:08Oct 1, 2008 at 21:08

fuentesjrfuentesjrfuentesjr

49,7K27 Huy hiệu vàng76 Huy hiệu bạc80 Huy hiệu đồng27 gold badges76 silver badges80 bronze badges

Cá nhân tôi sử dụng các quy ước đặt tên của Java khi phát triển trong các ngôn ngữ lập trình khác vì nó phù hợp và dễ theo dõi. Bằng cách đó, tôi không liên tục đấu tranh về những quy ước để sử dụng mà không phải là phần khó nhất trong dự án của tôi!

Đã trả lời ngày 22 tháng 8 năm 2019 lúc 3:37Aug 22, 2019 at 3:37

Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

Bradylangebradylangebradylange

3102 Huy hiệu bạc5 Huy hiệu Đồng2 silver badges5 bronze badges

1

Dù không ở trong lớp hay ngoài lớp::

Một biến và chức năng là chữ thường như được hiển thị bên dưới:lowercase as shown below:

name = "John"
def display(name):
    print("John")

Và nếu chúng có nhiều hơn một từ, chúng được phân tách bằng chữ "_" như hình dưới đây:underscore "_" as shown below:

first_name = "John"
def display_first_name(first_name):
    print(first_name)

Và, nếu một biến là một hằng số, thì đó là chữ hoa như hình dưới đây:uppercase as shown below:

FIRST_NAME = "John"

Đã trả lời ngày 13 tháng 6 lúc 13:08Jun 13 at 13:08

Hướng dẫn python variable naming conventions camelcase - quy ước đặt tên biến trong python

Kai - Kazuya Itokai - Kazuya ItoKai - Kazuya Ito

Huy hiệu vàng 11.6K672 Huy hiệu bạc89 Huy hiệu đồng6 gold badges72 silver badges89 bronze badges

Lenin đã nói ... Tôi cũng đến từ Java/C# World. Và SQL là tốt. Xem xét kỹ lưỡng bản thân trong nỗ lực tìm thấy những ví dụ khó hiểu về các công trình phức tạp như danh sách trong từ điển của các danh sách nơi mọi thứ là một đối tượng. Đối với tôi - Camelcase hoặc các biến thể của họ sẽ trở thành tiêu chuẩn cho bất kỳ ngôn ngữ nào. Gạch dưới nên được bảo tồn cho các câu phức tạp.

Đã trả lời ngày 27 tháng 8 năm 2021 lúc 20:03Aug 27, 2021 at 20:03

vic123vic123vic123

3672 Huy hiệu bạc3 Huy hiệu Đồng2 silver badges3 bronze badges

0

Thông thường, một người tuân theo các quy ước được sử dụng trong thư viện tiêu chuẩn của ngôn ngữ.

Đã trả lời ngày 2 tháng 10 năm 2008 lúc 3:55Oct 2, 2008 at 3:55

yfeldblumyfeldblumyfeldblum

64.6K11 Huy hiệu vàng128 Huy hiệu bạc168 Huy hiệu đồng11 gold badges128 silver badges168 bronze badges

Python có sử dụng Camelcase cho các biến không?

Biến, phương thức và tên hàm phải luôn luôn là snake_case (tự hỏi nó có tên đó ở đâu?). Bạn sẽ thấy Camelcase trong một số mã Python thực sự cũ nhưng đó không phải là quy ước hiện đại.You'll see camelCase in some really old Python code but it's not the modern convention at all.

Các biến Python có phải là trường hợp Camelcase hay Snake không?

Ngược lại, Python khuyến nghị trường hợp rắn, theo đó các từ được phân tách bằng dấu gạch dưới (_), với tất cả các chữ cái bằng chữ thường.Chẳng hạn, các biến tương tự sẽ được gọi là tên, first_name và preferred_first_name, tương ứng, trong python.snake case, whereby words are instead separated by underscores ( _ ), with all letters in lowercase. For instance, those same variables would be called name , first_name , and preferred_first_name , respectively, in Python.

Khi nào tôi nên sử dụng Camelcase trong Python?

Trường hợp lạc đà (ví dụ: Camelcase) thường dành cho các biến, thuộc tính, thuộc tính, phương thức và chức năng.Case Snake (ví dụ: Snake_case) thường được sử dụng trong các ngôn ngữ kịch bản như Python và như một hằng số trong các ngôn ngữ theo kiểu chữ C khác.Trường hợp Pascal (ví dụ: Pascalcase) chủ yếu được dành riêng cho tên lớp, giao diện và không gian tên.usually for variables, properties, attributes, methods, and functions. Snake case (ex: snake_case) is commonly used in scripting languages like Python and as a constant in other C-styled languages. Pascal case (ex: PascalCase) is mainly reserved for class names, interfaces, and namespaces.

Tên biến có nên là Camelcase?

Camelcase là một quy ước phổ biến trong lập trình máy tính và tên biến.Nói chung, các biến có thể là bất kỳ chuỗi ký tự nào không có khoảng trắng.Để giữ cho chúng nhất quán và có thể đọc được, tốt nhất là thiết lập các quy ước đặt tên thay đổi trong một tổ chức.. Generally, variables can be any string of characters without white space. To keep them consistent and readable, it is best practice to establish variable naming conventions within an organization.