tl; dr: cho tên toàn cầu/công cộng sử dụng AllCaps
như XORcist nói:
class Logger:
pass
AliasLogger = Logger
Đối với chức năng thông số và hàm địa phương, làm rõ rằng bạn đang xử lý đối tượng lớp với tên mô tả như sau:
def some_func(logger_class):
pass
hoặc một cái gì đó dọc theo dòng
def some_func(my_class_classobj):
pass
khi từ "class"
là thực sự trong classname của bạn. Đối với classobj
, xem thêm class_
và klass
.
Phân tích/Động lực (phiên bản dài)
Không đọc kỹ lưỡng, nhưng trong nháy mắt PEP 8 dường như không được rõ ràng về vấn đề này (hướng dẫn phong cách trăn không phải của google cho rằng vấn đề).
Vì tên biến có lẽ chỉ là name binding trong python, theo ý kiến của tôi nó không quan trọng cho dù bạn liên kết tên đó với khối định nghĩa hoặc sau đó với dấu bằng bằng =
đối với một số đối tượng.
Đối với điều này tôi đồng ý với XORcist trong đó cấp module tài liệu tham khảo "bí danh" phải tuân theo tiêu chuẩn lớp đặt tên của bạn, có lẽ AllCaps:
class MyClass(object):
pass
# good
ReferenceToClass = MyClass
Tuy nhiên khi nói đến tham số và tên biến, được cho là lowercase_underscores
nên áp dụng , đúng? Tôi không hài lòng với điều đó, vì nó sẽ đẩy bạn vào ví dụ so với sự mơ hồ tham chiếu lớp học. Có khả năng là một tên tất cả các chữ thường có thể là một nỗ lực để gợi ý đối tượng là một cá thể.Cho rằng vấn đề, tôi khuyên bạn nên postfixing của bạn hoàn toàn chữ thường, đẳng cấp tham khảo tên biến với "đẳng cấp" hậu tố, như thế này:
class Logger(object):
pass
def function_expecting_class_reference(logger_class):
pass
tôi đổi tên ví dụ của bạn lớp MyClass
-Logger
bởi vì trong kịch bản thực tế chỉ có một vài lớp tên chứa chuỗi "class"
. Tuy nhiên trong trường hợp sau đó tôi đề nghị tránh sự mơ hồ với việc đặt tên mô tả một lần nữa. Ví dụ, bạn có thể sử dụng một hậu tố classobj
:
class MyClass(object):
pass
def function_expecting_class_reference(another_param, my_class_classobj):
ReferenceToClass = MyClass
Một thay thế tôi có xu hướng để có được để sử dụng hậu tố klass
, như my_class_klass
. Không phải tất cả mọi người dường như có được thứ hai, nhưng dù sao tôi vẫn chưa kiểm tra xem họ sẽ có được cựu bất kỳ tốt hơn.
ReferenceToClass hoàn toàn giống với MyClass tại đây (ngữ nghĩa). Cả hai đều là các biến tham chiếu đến cùng một đối tượng lớp. – Kos