Tôi đang dạy tự python của tôi và tôi đã dịch một số mẫu mã vào đâypython biến phạm vi
class Student(object):
def __init__(self, name, a,b,c):
self.name = name
self.a = a
self.b = b
self.c = c
def average(self):
return (a+b+c)/3.0
Đó là khá nhiều định nghĩa lớp học dành tôi
Sau đó trong phương thức main tôi tạo một thể hiện và gọi nó là a
if __name__ == "__main__" :
a = Student("Oscar", 10, 10, 10)
đó là cách tôi tìm ra rằng biến a
khai báo trong main
có sẵn để phương pháp average
và để làm cho phương pháp đó hoạt động, tôi phải nhập self.a + self.b + self.c
thay vì
Lý do là gì?
tôi thấy câu hỏi có liên quan, nhưng tôi không thực sự biết nếu họ về
Là một lưu ý phụ, luôn kế thừa 'đối tượng' để bạn đang sử dụng * lớp kiểu mới *, tức là' lớp Học sinh (đối tượng): '. –
@ Giống như Subclassing 'object' trong Python 2.x là thực hành tốt, nhưng trong Python 3, điều này là không cần thiết, vì tất cả các lớp là" kiểu mới ". Tôi nhận thấy Python 3 thông qua là người nghèo, và giả sử OP đang sử dụng Python 2.x là hợp lý, nhưng một số ngày tôi hy vọng nó sẽ là một giả định nghèo. – gotgenes