2015-11-05 18 views
5

Có quy ước đặt tên được chấp nhận cho cụm từ thông dụng trong Python không? Hoặc nếu không có, một số gợi ý về cách đặt tên cho chúng là gì? Thông thường tôi đặt tên chúng là look_for_date hoặc address_re nhưng tôi đã đọc một số địa điểm sử dụng hậu tố như '_re' trong tên biến không tốt. Đối với tôi nó có vẻ như regex cần một cái gì đó để chỉ ra đó là một regex, vì nếu bạn đặt tên nó chỉ date hoặc address, bạn sẽ không thể để làm công cụ như thế này, mà dường như trực quan:Quy ước đặt tên cho các cụm từ thông dụng của Python?

date = date_re.match(text)

Trả lời

5

Biểu thức chính quy được biên dịch là các hằng số , vì vậy phải có tên UPPERCASE_WITH_UNDESCORES. Tôi có xu hướng đặt tên chúng cho những gì chúng phù hợp; để đưa ra một ví dụ từ một số mã tôi đã viết gần đây:

import re 

VALID_CLOSURE_PATTERN = re.compile(r''' 
    ^\d{2} # starts with two digits 0-9 
    [NY]{4}$ # followed by four Y/N characters 
''', re.IGNORECASE + re.VERBOSE) 


class RoadClosure(object): 

    def __init__(self, ..., closure_pattern): 
     """Initialise the new instance.""" 
     if not VALID_CLOSURE_PATTERN.match(closure_pattern): 
      raise ValueError('invalid closure pattern: {!r}'.format(closure_pattern)) 
     ... 

... 

Tôi nghĩ rằng điều này làm cho nó khá rõ ràng những gì đang xảy ra, VALID_CLOSURE_PATTERN giao "này mô tả những gì chúng ta sẽ xem xét để có một mô hình đóng cửa hợp lệ" và một dòng như:

if not VALID_CLOSURE_PATTERN.match(closure_pattern): 

mô tả những gì nó thực sự hoạt động gần bằng tiếng Anh đơn giản. Vì vậy, trong trường hợp của bạn, bạn có thể viết:

date = VALID_DATE.match(text) 
+1

Thật tuyệt, tôi cũng muốn hỏi về trường hợp trên. Cảm ơn câu trả lời. Vì vậy, đây là những hướng dẫn và không được khắc trên đá bởi các vị thần PEP? – nonex

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