Hãy xem xét các lớp sau:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
Đồng nghiệp của tôi có xu hướng định nghĩa nó như thế này:
class Person:
name = None
age = None
def __init__(self, name, age):
self.name = name
self.age = age
Lý do chính cho điều này là trình soạn thảo lựa chọn của họ hiển thị các thuộc tính để tự động hoàn thành.
Cá nhân, tôi không thích cái thứ hai, bởi vì nó không có nghĩa là một lớp có các thuộc tính đó được đặt thành None
.
Cái nào sẽ được thực hành tốt hơn và vì lý do gì?
__init__
đã cung cấp autocompletion vv Ngoài ra, sử dụng None
ngăn chặn các IDE để suy ra một loại tốt hơn cho các thuộc tính, vì vậy nó là tốt hơn để sử dụng một mặc định hợp lý thay vì (khi khả thi).
typing
mô-đun, cho phép bạn cung cấp gợi ý cho IDE và kẻ nói dối, nếu điều đó làm bạn thích thú ...
self
. Ngay cả khi self.name
hoặc self.age
không được chỉ định trong trường hợp __init__
họ sẽ không xuất hiện trong trường hợp self
, họ chỉ xuất hiện trong lớp Person
.