Bạn có thể xây dựng các đối tượng hoặc lớp bằng Python không?

Nếu bạn là nhà phát triển đang tìm cách nâng cao kỹ năng Python của mình, việc thêm OOP vào hộp Python của bạn có thể hữu ích. Hướng dẫn này sẽ giúp bạn bắt đầu với lập trình hướng đối tượng trong Python

Python hỗ trợ các mô hình lập trình hướng đối tượng, chức năng và thủ tục

Lập trình thủ tục hoạt động tốt cho các dự án đơn giản và nhỏ hơn. Nhưng khi bạn bắt đầu làm việc trên các ứng dụng lớn hơn, điều quan trọng là tổ chức mã tốt hơn. Lập trình hướng đối tượng cho phép bạn nhóm các dữ liệu và chức năng liên quan một cách hợp lý. Nó cũng tạo điều kiện tái sử dụng mã và cho phép bạn thêm chức năng vào đầu mã hiện có

Trong hướng dẫn này, bạn sẽ học cách

  • Tạo và làm việc với các lớp và đối tượng trong Python
  • Xác định các thuộc tính và phương thức của cá thể
  • Định nghĩa các biến và phương thức của lớp
  • Sử dụng các phương thức của lớp làm hàm tạo
  • Định nghĩa các phương thức tĩnh

Cách tạo các lớp và đối tượng trong Python

Python vốn hỗ trợ lập trình hướng đối tượng và tất cả các biến mà bạn tạo đều là đối tượng. Bạn có thể bắt đầu REPL Python và chạy dòng mã sau. nó gọi hàm

student_1 = Student[]
2 với đối số là
student_1 = Student[]
3. Đầu ra đọc là
student_1 = Student[]
4 có nghĩa là
student_1 = Student[]
3 là một đối tượng của lớp số nguyên

>>> py_num = 8
>>> type[py_num]

Bạn có thể xác minh điều này để biết thêm một số loại dữ liệu tích hợp

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]

Giống như tất cả các ngôn ngữ lập trình hiện đại, Python cho phép bạn tạo các lớp tùy chỉnh. Một lớp là một mẫu hoặc một kế hoạch chi tiết mà từ đó bạn có thể tạo các đối tượng của lớp, còn được gọi là các thể hiện

Để tạo một lớp, bạn có thể sử dụng từ khóa

student_1 = Student[]
6 theo sau là tên của lớp.
student_1 = Student[]
7. Theo quy ước, tên lớp được chỉ định trong trường hợp Pascal—trong đó chữ cái đầu tiên của mỗi từ trong tên biến được viết hoa

Trong hướng dẫn này, chúng ta hãy xem xét ví dụ về lớp

student_1 = Student[]
8—chứa hồ sơ học sinh cho một năm học nhất định

Bạn có thể tải xuống mã và làm theo cùng

Tất cả mã bên dưới nằm trong tệp

student_1 = Student[]
9

class Student:
    pass # placeholder for code that we'll write shortly!

Sau khi bạn đã tạo một lớp, bạn có thể tạo một đối tượng bằng cách gọi lớp đó như thể đó là một hàm

student_1 = Student[]

Để xác minh xem đối tượng được tạo có phải là một thể hiện của một lớp cụ thể hay không, bạn có thể sử dụng một trong các phương pháp sau

  • Gọi hàm

    student_1 = Student[]
    2 với tên đối tượng làm đối số

  • Gọi hàm

    print[type[student_1]]
    print[isinstance[student_1,Student]]
    1.
    print[type[student_1]]
    print[isinstance[student_1,Student]]
    2 trả về
    print[type[student_1]]
    print[isinstance[student_1,Student]]
    3 nếu
    print[type[student_1]]
    print[isinstance[student_1,Student]]
    4 là một thể hiện của lớp
    print[type[student_1]]
    print[isinstance[student_1,Student]]
    5;

print[type[student_1]]
print[isinstance[student_1,Student]]

# Output

True

Hiểu các thuộc tính và phương thức của Instance

Dữ liệu được liên kết với các đối tượng hoặc thể hiện được gọi là thuộc tính. Các hành động mà các đối tượng có thể thực hiện hoặc cho phép chúng ta thực hiện trên chúng được gọi là các phương thức

Sau khi bạn đã tạo một phiên bản, bạn có thể xác định các thuộc tính bằng cách sử dụng

print[type[student_1]]
print[isinstance[student_1,Student]]
7

Tuy nhiên, điều này không tạo điều kiện thuận lợi cho việc sử dụng lại mã và không có lợi ích gì khi sử dụng một lớp. Bạn sẽ muốn khởi tạo các thuộc tính này theo chương trình với các giá trị tương ứng của chúng—bất cứ khi nào bạn khởi tạo một đối tượng. Để làm điều này, bạn có thể sử dụng phương thức

print[type[student_1]]
print[isinstance[student_1,Student]]
8 đóng vai trò là hàm tạo của lớp

Phương pháp
print[type[student_1]]
print[isinstance[student_1,Student]]
8 hoạt động như thế nào

Phương thức

print[type[student_1]]
print[isinstance[student_1,Student]]
8 là phương thức khởi tạo của lớp giúp khởi tạo các thuộc tính của thể hiện. Tất cả các phương thức được định nghĩa bên trong lớp được thụt vào bởi bốn dấu cách

Bất cứ khi nào một phương thức được định nghĩa bên trong một lớp, nó sẽ lấy thể hiện của lớp đó làm đối số đầu tiên và thường được đặt tên là

# Output

True
1

Việc sử dụng

# Output

True
1 làm tham số đầu tiên là một phương pháp được khuyến nghị theo và không phải là một yêu cầu nghiêm ngặt

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

Bất cứ khi nào bạn tạo một thể hiện của lớp

student_1 = Student[]
8, phương thức
print[type[student_1]]
print[isinstance[student_1,Student]]
8 sẽ thực hiện như sau

  • Nó tự động lấy đối số đầu tiên trong thể hiện [ký hiệu là
    # Output
    
    True
    1]. Trong ví dụ này, thể hiện biểu thị một đối tượng sinh viên cụ thể
  • Nó gán các giá trị của các tham số,
    # Output
    
    True
    6,
    # Output
    
    True
    7 và
    # Output
    
    True
    8 cho các thuộc tính thể hiện
    # Output
    
    True
    6,
    # Output
    
    True
    7 và
    # Output
    
    True
    8 của thể hiện cụ thể

Để cải thiện khả năng đọc, bạn có thể cân nhắc đặt tên giống nhau cho cả thuộc tính và tham số trong hàm tạo

print[type[student_1]]
print[isinstance[student_1,Student]]
8, nhưng các tên khác nhau, như minh họa trong đoạn mã bên dưới, sẽ hoạt động tốt

class Student:
    def __init__[self,fname,lname,tuition_amt]:
        self.first_name = fname
        self.last_name = lname
        self.tuition = tuit_amt

Tóm tắt những gì chúng ta đã học được cho đến nay. Lớp

student_1 = Student[]
8 đóng vai trò là mẫu—với các thuộc tính
# Output

True
6,
# Output

True
7 và
# Output

True
8—từ đó chúng ta có thể tạo các đối tượng sinh viên, mỗi đối tượng có họ và tên riêng, và học phí liên quan

Vì các thuộc tính trên là duy nhất cho một đối tượng cụ thể, nên chúng được gọi là thuộc tính thể hiện hoặc biến thể hiện


Bây giờ bạn đã xác định phương thức

print[type[student_1]]
print[isinstance[student_1,Student]]
8, bạn có thể khởi tạo các đối tượng với các giá trị mong muốn cho các thuộc tính mẫu, như minh họa bên dưới

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]

Cách xác định và gọi các phương thức sơ thẩm

Ngoài phương thức

print[type[student_1]]
print[isinstance[student_1,Student]]
8, bạn có thể định nghĩa các phương thức khác hoạt động trên các thể hiện của lớp, thường truy cập và sửa đổi các thuộc tính thể hiện. Các phương thức như vậy được đặt tên đúng là các phương thức thể hiện

Hãy xem lại ví dụ về lớp

student_1 = Student[]
8

Với các thuộc tính

# Output

True
6 và
# Output

True
7, chúng ta có thể định nghĩa các phương thức sử dụng các thuộc tính này và trả về tên đầy đủ và email cho từng đối tượng sinh viên. Chúng tôi đặt tên cho các phương thức này lần lượt là
class Student:
    def __init__[self,fname,lname,tuition_amt]:
        self.first_name = fname
        self.last_name = lname
        self.tuition = tuit_amt
2 và
class Student:
    def __init__[self,fname,lname,tuition_amt]:
        self.first_name = fname
        self.last_name = lname
        self.tuition = tuit_amt
3. Hãy nhớ rằng, tất cả các phương thức thể hiện đều lấy thể hiện [_______20_______1] làm đối số đầu tiên

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"

Để gọi một phương thức thể hiện, bạn có thể sử dụng,

class Student:
    def __init__[self,fname,lname,tuition_amt]:
        self.first_name = fname
        self.last_name = lname
        self.tuition = tuit_amt
5. Bạn cũng có thể gọi một phương thức thể hiện bằng cách sử dụng lớp với cú pháp.
class Student:
    def __init__[self,fname,lname,tuition_amt]:
        self.first_name = fname
        self.last_name = lname
        self.tuition = tuit_amt
6. Mặc dù dài dòng, phương pháp này giúp hiểu cách thể hiện được truyền vào làm đối số đầu tiên

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
0

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
1

Biến lớp là gì và cách sử dụng chúng?

Đến đây, bạn đã học cách định nghĩa các biến thể hiện, cụ thể cho một thể hiện hoặc đối tượng của lớp và các phương thức thể hiện hoạt động trên các biến thể hiện

Tuy nhiên, có những lúc bạn sẽ cần một số thuộc tính giữ nguyên cho tất cả các phiên bản của một lớp cụ thể. Bạn có thể định nghĩa các thuộc tính như biến lớp

Thông thường, các biến lớp được định nghĩa trước các phương thức lớp và thể hiện khác sẽ sử dụng chúng

Khởi tạo và truy cập các biến lớp

Ví dụ: trong lớp

student_1 = Student[]
8, nếu bạn đang duy trì hồ sơ học sinh cho một năm học nhất định, thì có thể có một biến lớp,
class Student:
    def __init__[self,fname,lname,tuition_amt]:
        self.first_name = fname
        self.last_name = lname
        self.tuition = tuit_amt
8 sẽ giữ nguyên cho tất cả các đối tượng học sinh được tạo từ lớp
student_1 = Student[]
8

Chúng ta có thể định nghĩa một biến lớp khác,

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
0 để theo dõi số lượng đối tượng sinh viên được tạo. Mỗi khi bạn tạo một đối tượng sinh viên mới, giá trị của
student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
0 được tăng thêm 1

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
2

Bạn có thể truy cập các biến lớp bằng cú pháp.

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
2

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
3

Chúng tôi đã tạo hai đối tượng sinh viên, do đó giá trị của biến lớp

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
0 hiện là 2

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
4

Cách sử dụng các phương thức lớp trong Python

Ngoài các biến lớp, bạn cũng có thể định nghĩa các phương thức lớp liên kết với một lớp. Các phương thức như vậy không truy cập bất kỳ thuộc tính thể hiện nào nhưng có thể được sử dụng để đặt giá trị của biến lớp hoặc hàm dưới dạng hàm tạo lớp thay thế

Giả sử trường đại học đặt giá trị của

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
4, một số từ 0 đến 1—biểu thị phần học phí được miễn. Thay vì mã hóa nó thành một biến lớp, bạn có thể định nghĩa một phương thức đặt giá trị của
student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
4

Để chuyển đổi một phương thức thể hiện thành một phương thức lớp, bạn có thể sử dụng trình trang trí

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
6 trong Python. Theo quy ước, đối số đầu tiên trong các phương thức lớp là
student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
7, giống như cách đối số đầu tiên trong các phương thức thể hiện là
# Output

True
1

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
5

Bây giờ bạn đã xác định phương thức lớp, bạn có thể xác định một phương thức thực thể

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
9 áp dụng miễn lệ phí và trả về
# Output

True
8 đã cập nhật cho bất kỳ đối tượng sinh viên nào

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
6

Hãy đặt

student_1 = Student['Jane','Smith',20000]
student_2 = Student['John','Doe',15000]
4 và áp dụng miễn lệ phí cho
class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
2

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
7

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
8

Trang trí trong Python. Một cái nhìn tổng quan

Hãy bắt đầu với một ví dụ

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
9

Ở đây,

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
3 là một hàm nhận hai số và trả về tổng của chúng

Giả sử, chúng tôi muốn sửa đổi chức năng này bằng cách nhân đôi từng đối số trước khi thêm. Chúng ta có thể thay đổi câu lệnh return để đọc.

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
4 nhưng nếu bạn không còn muốn nhân đôi đối số thì sao? . Nhập trang trí

Trong Python, trình trang trí là một hàm mở rộng chức năng của các hàm hiện có mà không sửa đổi chúng một cách rõ ràng. Như đã giải thích trước đó, tất cả các biến trong Python vốn dĩ là các đối tượng, hàm cũng vậy. Do đó, bạn có thể chuyển các hàm dưới dạng đối số cho một hàm khác và bạn có thể định nghĩa một hàm trả về một hàm khác

Đọc qua đoạn mã dưới đây

class Student:
    pass # placeholder for code that we'll write shortly!
0

Hãy phân tích định nghĩa của

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
5

  • Hàm
    class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    5 chấp nhận hàm
    class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    7 làm đối số
  • Trong phần thân của hàm, chúng ta định nghĩa một hàm
    class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    8 được tham số hóa bởi
    class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    9 và
    >>> py_str = "A Python String"
    >>> type[py_str]
    
    >>> py_list = [2,4,9]
    >>> type[py_list]
    
    00
  • class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    8 trả về hàm
    class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    7, được gọi với ___________03 và ___________04 làm đối số
  • Hàm
    class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    5 trả về hàm
    class Student:
        def __init__[self,first_name,last_name,tuition]:
            self.first_name = first_name
            self.last_name = last_name
            self.tuition = tuition
    
        def get_full_name[self]:
            return f"{self.first_name} {self.last_name}"
    
        def get_email[self]:
            return f"{self.first_name}.{self.last_name}@school.edu"
    8 bên trong

Tiếp theo, bạn có thể gọi hàm

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
5 với
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
08 làm đối số và gán [một lần nữa] cho
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
08—giống như cách bạn gọi một hàm và gán giá trị trả về của nó cho một biến

Bây giờ, khi bạn gọi

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
3 với các giá trị cho
class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
9 và
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
00, nó sẽ trả về tổng của
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
03 và
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
04

class Student:
    pass # placeholder for code that we'll write shortly!
1

Thay vì cú pháp dài dòng ở trên, bạn có một cú pháp ngắn gọn. Chỉ cần thêm

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
15 phía trên định nghĩa của hàm
class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
3, như hình bên dưới

class Student:
    pass # placeholder for code that we'll write shortly!
2

Do đó, hàm

class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
5 tô điểm cho hàm
class Student:
    def __init__[self,first_name,last_name,tuition]:
        self.first_name = first_name
        self.last_name = last_name
        self.tuition = tuition

    def get_full_name[self]:
        return f"{self.first_name} {self.last_name}"

    def get_email[self]:
        return f"{self.first_name}.{self.last_name}@school.edu"
3 để có thuộc tính nhân đôi các đối số và tính tổng của chúng

Tại thời điểm này, chúng ta có đoạn mã sau trong tệp

student_1 = Student[]
9

class Student:
    pass # placeholder for code that we'll write shortly!
3

Tiếp theo, hãy tiếp tục tìm hiểu cách định nghĩa các phương thức lớp có thể được sử dụng làm hàm tạo

Cách sử dụng các phương thức lớp làm hàm tạo

Thay vào đó, giả sử rằng dữ liệu sinh viên có sẵn ở dạng bộ dữ liệu - một bộ dữ liệu cho mỗi sinh viên. Trong trường hợp này, bạn nên giải nén bộ dữ liệu thành ba biến, sau đó tiến hành khởi tạo đối tượng

class Student:
    pass # placeholder for code that we'll write shortly!
4

Khi bạn cần khởi tạo nhiều đối tượng, bạn sẽ phải lặp lại bước giải nén cho từng bộ dữ liệu—việc này lặp đi lặp lại và không tối ưu

Bạn có thể định nghĩa một phương thức lớp

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
20 để giải nén bộ dữ liệu và gán các giá trị cho tên thuộc tính. Sau đó, bạn có thể trả về một tham chiếu đến lớp, cho phép chúng ta khởi tạo các đối tượng bằng cách gọi phương thức của lớp

class Student:
    pass # placeholder for code that we'll write shortly!
5

Bây giờ, bạn có thể tạo các đối tượng sinh viên từ các bộ dữ liệu bằng cách sử dụng phương thức

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
20 làm hàm tạo

class Student:
    pass # placeholder for code that we'll write shortly!
6

Bạn có thể định nghĩa các biến thể của hàm tạo lớp trên để xây dựng các đối tượng bằng cách phân tích chuỗi Python, tệp JSON, v.v.

Cách sử dụng các phương thức tĩnh trong Python

Giả sử bạn muốn định nghĩa một phương thức liên quan đến lớp; . Trong trường hợp này, bạn nên xem xét việc xác định nó là một phương thức tĩnh

Ví dụ, trong lớp

student_1 = Student[]
8, bạn có thể định nghĩa một phương thức
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
23 lấy ngày và kiểm tra xem học kỳ đang diễn ra có phải là học kỳ mùa thu hay không

Để làm việc với ngày tháng, hãy nhập lớp

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
24 từ mô-đun
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
25 tích hợp sẵn của Python

class Student:
    pass # placeholder for code that we'll write shortly!
7

Để xác định một phương thức tĩnh, bạn có thể sử dụng trình trang trí

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
26. Giả sử rằng tháng 9, tháng 10 và tháng 11 tương ứng với mùa thu, chúng tôi kiểm tra xem thuộc tính tháng của ngày—được chuyển vào làm đối số cho
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
23—có trong danh sách [9,10,11]

Hãy thêm định nghĩa sau của

>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
23 vào lớp

class Student:
    pass # placeholder for code that we'll write shortly!
8

Mặc dù một phương thức tĩnh không bị ràng buộc với lớp hoặc một thể hiện của lớp, nhưng nó vẫn hiện diện trong không gian tên của lớp

student_1 = Student[]
8. Bạn có thể gọi phương thức tĩnh giống như cách bạn gọi bất kỳ phương thức lớp nào trong phạm vi với cú pháp.
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
30. Hãy gọi
>>> py_str = "A Python String"
>>> type[py_str]

>>> py_list = [2,4,9]
>>> type[py_list]
23 với ngày hôm nay là đối số và nó vẫn chưa rơi vào năm 2022

class Student:
    pass # placeholder for code that we'll write shortly!
9

student_1 = Student[]
0

Đặt tất cả lại với nhau, chúng ta có đoạn mã sau trong tệp

student_1 = Student[]
9

student_1 = Student[]
1

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu sâu về cách các lớp và đối tượng hoạt động trong ngôn ngữ lập trình Python. Chúng tôi đã tạo các lớp đóng vai trò là mẫu để tạo các đối tượng có bộ dữ liệu [thuộc tính cá thể] và hàm [phương thức cá thể] của riêng chúng

Sau đó, chúng tôi đã học cách sử dụng các biến lớp cho các thuộc tính có cùng giá trị trên tất cả các phiên bản của một lớp cụ thể và cách các phương thức lớp có thể được sử dụng làm hàm tạo của lớp thay thế. Chúng tôi cũng đề cập đến việc sử dụng các phương thức tĩnh để xác định các hàm liên quan không được liên kết với lớp cũng như một thể hiện cụ thể

Trong hướng dẫn tiếp theo của loạt bài này, chúng ta sẽ tìm hiểu cách tận dụng và mở rộng chức năng của các lớp hiện có bằng cách sử dụng tính kế thừa trong Python

Trong khi bạn ở đây

Earthly là khuôn khổ CI/CD dễ dàng
Phát triển đường ống CI/CD cục bộ và chạy chúng ở mọi nơi

Bala Priya C

Bala là một nhà văn kỹ thuật thích tạo nội dung dài. Lĩnh vực quan tâm của cô bao gồm toán học và lập trình. Cô ấy chia sẻ kiến ​​thức của mình với cộng đồng nhà phát triển bằng cách viết các hướng dẫn, hướng dẫn cách thực hiện, v.v.

Bạn có thể xây dựng các lớp học bằng Python không?

Chúng tôi biết rằng python cũng hỗ trợ khái niệm đối tượng và lớp . Một đối tượng chỉ đơn giản là một tập hợp dữ liệu [biến] và phương thức [hàm]. Tương tự, một lớp là một bản thiết kế cho đối tượng đó.

Tôi có nên tạo các lớp học bằng Python không?

Theo nguyên tắc thông thường, khi bạn có một tập hợp dữ liệu với cấu trúc cụ thể và bạn muốn thực hiện các phương thức cụ thể trên đó, hãy sử dụng một lớp. That is only valid, however, if you use multiple data structures in your code. If your whole code won't ever deal with more than one structure.

Các đối tượng có thể tạo các lớp không?

Khởi tạo một lớp . Toán tử mới yêu cầu một đối số hậu tố duy nhất. một cuộc gọi đến một nhà xây dựng. Tên của hàm tạo cung cấp tên của lớp để khởi tạo. When you create an object, you are creating an instance of a class, therefore "instantiating" a class. The new operator requires a single, postfix argument: a call to a constructor. The name of the constructor provides the name of the class to instantiate.

Sự khác biệt giữa lớp và đối tượng lớp trong Python là gì?

Đối tượng là một thể hiện của lớp . Tất cả các thành viên dữ liệu và chức năng thành viên của lớp có thể được truy cập với sự trợ giúp của các đối tượng. Khi một lớp được định nghĩa, không có bộ nhớ nào được cấp phát, nhưng bộ nhớ được cấp phát khi nó được khởi tạo [i. e. một đối tượng được tạo ra].

Chủ Đề