01/10/2018, 10:29
Thắc mắc về biến self trong python
class BySubjectGradeBook(object):
def __init__(self):
self._grades = {}
def add_student(self, name):
self._grades[name] = {}
def report_grade(self, name, subject, grade):
by_subject = self._grades[name]
grade_list = by_subject.setdefault(subject, [])
grade_list.append(grade)
return self._grades[name]
book = BySubjectGradeBook()
book.add_student('bondaica')
book.report_grade('bondaica', 'math', 75)
book.report_grade('bondaica', 'physics', 80)
Ban đầu trong hàm add_student biến self._grades[name] là một dict không có gì cả. Sau đó trong hàm report_grade mình thấy biến self._grades[name] không được gán gì vào cả, chỉ bị gán vào biến by_subject nhưng khi return ra thì lại có số liệu . Ai giải thích cho mình với.
Bài liên quan
Một kiến thức cơ bản mà bạn chưa biết đó là
Edit: để có thể tránh được tình huống này
Bạn lưu ý một chỗ này cho mình, nó chỉ copy những cái con thôi nhé. Nếu nó là con của con thì nó sẽ không được như mong muốn đâu
Mình gợi ý cách sau đây