Thiết kế với các classes Python (phần 5)

Một ví dụ đầu tiên: Student Class (tiếp tục)

Như bạn đã học trong các học phần trước, cú pháp của một định nghĩa class đơn giản là như sau:

class <class name>(<parent class name>):

<method definition-1>

<method definition-n>

Cú pháp định nghĩa class có 2 phần: một class header và một tập các định nghĩa phương thức cái đi theo class header.
Class header chứa tên class và tên class cha
Tên class là một cái nhận dạng Python. Mặc dù các tên dạng tích hợp là không viết chữ hoa, các lập trình viên Python
điển hình viết chữ hoa các tên class của bản thân chúng để phân biệt chúng khỏi các tên biến.
Tên class cha tham chiếu đến class khác. Tất cả các Python classes, bao gồm những cái tích hợp, được tổ chức trong
một trật tự có thứ bậc class giống cây. Tại đỉnh, hay root của cây này là class trừu tượng nhất, tên object, cái
là tích hợp. Mỗi class ngay lập tức dưới class khác trong trật tự có thứ bậc được nhắc đến như là một subclass,
trong khi class ngay lập tức trên nó, nếu có một cái được gọi là class cha của nó. Nếu tên class cha trong ngoặc
đơn bị bỏ đi khỏi định nghĩa class, class mới tự động được tạo một subclass của object. Trong các định nghĩa class
ví dụ thể hiện trong các học phần, chúng ta công khai bao gồm các tên class cha. Nhiều hơn sẽ được nói về các
mối quan hệ giữa các classes trong trật tự có thứ bậc sau này trong học phần.
Code cho Student class đi theo, và cấu trúc của nó được giải thích trong vài phần phụ tiếp theo:

“””
File: student.py
Resources to manage a student’s name and test scores.
“””
class Student(object):

“””Represents a student.”””
def __init__(self, name, number):

“””Constructor creates a Student with the given
name and number of scores and sets all scores
to 0.”””
self.name = name
self.scores = []
for count in range(number):

self.scores.append(0)

def getName(self):

“””Returns the student’s name.”””
return self.name

def setScore(self, i, score):

“””Resets the ith score, counting from 1.”””
self.scores[i – 1] = score

def getScore(self, i):

“””Returns the ith score, counting from 1.”””
return self.scores[i – 1]
def getAverageScore(self):
“””Returns the average score.”””
return sum(self.scores) / len(self.scores)

def getHighScore(self):

“””Returns the highest score.”””
return max(self.scores)

def __str__(self):

“””Returns the string representation of the
student.”””
return “Name: ” + self.name + “\nScores: ” + \

” “.join(map(str, self.scores))

Chia sẻ