Trong mã của bạn:
class User:
UserName
Password
UserName
và Password
được phân tích cú pháp như biểu thức. Vì họ chưa được chỉ định vào thời điểm này, bạn sẽ nhận được NameError
.
Trong Python, một biến phải được xác định bằng câu lệnh gán trước khi nó có thể được sử dụng trong một biểu thức, nếu không bạn sẽ nhận được một NameError. Lưu ý rằng "trước" ở đây có nghĩa là "lệnh thực hiện", không phải "lệnh mã nguồn". Có nhiều hơn một chút với nó (các câu lệnh import, globals, hacks namespace), nhưng hãy giữ nó đơn giản ở đây.
Cách thành ngữ để xác định biến "không có giá trị" là gán giá trị None
.
Ngoài ra, mã của bạn có vẻ như thực sự muốn các thành viên thể hiện chứ không phải thành viên của lớp học.Cách thành ngữ để làm điều đó, như được công nhận bởi một số công cụ phân tích tĩnh như pylint
, là:
class User(object):
def __init__(self):
self.username = None
self.password = None
Ngoài ra, nó là tốt phong cách Python để lấy được tất cả các lớp từ "đối tượng", vì vậy bạn sử dụng các lớp học kiểu mới và đặt tên biến mẫu bằng quy ước lowercase_with_underscore hoặc initialLowerWithCaps. Kiểu InitialCaps khá phổ biến dành riêng cho các tên lớp.
Hướng dẫn Python có tại đây: http://docs.python.org/tutorial/index.html Khá tốt nếu bạn đã lập trình trước đây. –
Tại sao bạn muốn làm điều đó? – sykora
Cụm từ "không có biến" có thể được dự định là "không có giá trị". –