Lập trình hướng đối tượng cho phép chúng ta tạo các đối tượng có các phương thức riêng của chúng, chẳng hạn như run.
Và các thuộc tính.
Đặc tính.
Đó là một cách tuyệt vời để thêm nhiều chức năng hơn vào một ngôn ngữ và bắt chước thế giới thực.
Ví dụ, chúng tôi sử dụng ý tưởng làm việc cho một công ty trò chơi.
Mặc dù Python chỉ cung cấp cho chúng tôi một vài kiểu dữ liệu, nhưng tôi đã có thể tạo một nhân vật người chơi và bây
giờ ông chủ của tôi rất vui vì nhân vật người chơi này có thể được sử dụng trên toàn trò chơi và tất cả những người
lập trình khác phải làm là chạy dòng này với tên tùy chỉnh và tuổi của nhân vật.
Vì vậy, OP cho phép chúng ta viết mã có thể lặp lại, được tổ chức tốt và cũng hiệu quả về bộ nhớ.
Đúng?
Bởi vì chúng tôi chỉ viết điều này một lần.
Vì vậy, nếu bạn muốn trở thành một nhà phát triển tuyệt vời, OP là điều bạn cần biết và bạn cần hiểu
bởi vì đây là cách bạn muốn tổ chức mã của mình.
Suy nghĩ ít thủ tục hơn và suy nghĩ nhiều hơn về chức năng.
Nhóm dữ liệu như thuộc tính cùng với các phương thức để tạo lớp này có thể bắt chước một thứ gì đó từ thế
giới thực.
Bây giờ tôi muốn cho bạn thấy một công cụ hữu ích ở đây.
Chúng tôi đã thấy điều đó khi tôi chơi Player Dot.
Trình chỉnh sửa của tôi chỉ cho tôi những gì tôi có sẵn các thuộc tính cũng như các hộp màu tím, là các
phương pháp mà tôi có sẵn.
Và ngay lập tức bạn sẽ thấy rằng tôi có một cái tên và chạy, nhưng sau đó tôi có tất cả những cái khác mà
tôi có theo mặc định.
Bây giờ đây là tất cả các phương pháp Dunder hoặc ma thuật, mà chúng ta sẽ đi vào.
Nhưng mấu chốt ở đây là nếu tôi làm điều gì đó giống như trợ giúp, đây là một chức năng mới mà bạn có
thể chưa thấy trước đây, và hãy bình luận điều này.
Nếu tôi bấm Chạy.
Tôi thực sự ổn, toàn bộ bản thiết kế của đối tượng.
Nếu tôi làm một cái gì đó giống như một danh sách.
Và tôi nhấp vào Chạy.
Một lần nữa, nó cho thấy bản thiết kế mà nó có.
Và đây là một cách tuyệt vời để xem bản thiết kế lớp nào một số kiểu dữ liệu Python có.
Bây giờ, đây là thứ chúng ta sẽ xem lại sau.
Nhưng tôi muốn quay lại nhân vật người chơi này.
Bây giờ, tại đây, chúng tôi thấy rằng chúng tôi có thể tạo các thuộc tính.
Và thuộc tính là những phần dữ liệu động.
Nghĩa là, khi chúng ta khởi tạo một đối tượng, chúng sẽ là duy nhất cho đối tượng cụ thể đó như
tên và tuổi.
Và chúng tôi đã phải sử dụng từ khóa self này để đảm bảo rằng nó là động.
Tuy nhiên, có một thứ khác được gọi là thuộc tính đối tượng lớp, và nó có thể trông như thế này.
Giả sử chúng tôi có nhân vật người chơi và họ phải là một thành viên trả tiền.
Để chơi trò chơi này, bạn phải chơi hoặc bạn phải có tư cách thành viên.
Vì vậy, chúng ta hãy có một thành viên bằng.
ĐÚNG VẬY.
Thuộc tính.
Bây giờ, không giống như phương pháp này, bạn thấy rằng nó ở cùng dòng với các phương pháp của chúng tôi.
Và đây được gọi là một đối tượng lớp.
Thuộc tính.
Trong một thuộc tính đối tượng lớp, không giống như các thuộc tính lớp thông thường này, là khác bởi vì
nó không động mà là tĩnh.
Vì vậy, nếu tôi nhấp vào.
Chạy ở đây và chúng tôi muốn đảm bảo rằng chúng tôi in một cái gì đó.
Vì vậy, hãy in trình phát.
Và tôi nhấp vào Chạy.
Trong khi tôi có được người chơi, điều đó thật tuyệt.
Nhưng nếu tôi làm thành viên chấm.
Và tôi nhấp vào Chạy.
Nhìn kìa.
Tôi nhận được điều đó bằng hai nếu tôi chơi một người ở đây.
Cũng.
Và tôi nhấp vào Chạy.
Tôi lại đúng.
Vì vậy, tất cả những người chơi có tư cách thành viên được đặt thành true.
Nhưng đây không phải là động.
Đó là một thuộc tính đối tượng của lớp, có nghĩa là nó là một thuộc tính thực tế trên lớp này.
Và đây là thứ chúng tôi sử dụng khi không có thay đổi.
Điều này sẽ đúng và tồn tại cho tất cả các đối tượng, vì vậy bạn không thể thực sự sửa đổi nó.
Nó chỉ là tất cả các đối tượng mà chúng tôi khởi tạo sẽ có quyền truy cập vào nó.
Vì vậy, điều này không thay đổi giữa các trường hợp.
Và chúng ta có thể sử dụng nó ở đây cũng như ở bất kỳ đâu trong bản thiết kế lớp này.
Về thực tế, chẳng hạn, giả sử chúng ta muốn kiểm tra xem.
Tư cách thành viên tồn tại, vì vậy chúng tôi đang kiểm tra xem tư cách thành viên có đúng không.
Ý tôi là, nó luôn là như vậy.
Vì vậy, điều này là một chút hơi thừa, nhưng ở đây.
Tôi chỉ có thể nói nếu tư cách thành viên là sự thật.
Sau đó, tôi sẽ chỉ định tên và tuổi.
Nhưng để chúng tôi có quyền thành viên, tôi sẽ phải tự chấm tư cách thành viên vì hãy nhớ rằng, tự đề cập đến
nhân vật người chơi này để nếu tôi chạy điều này.
Mọi thứ vẫn hoạt động.
Và nếu tôi làm người chơi tên một dấu chấm.
Điều này vẫn hoạt động.
Hoặc tôi có thể tham khảo điều này bằng nhân vật người chơi thực tế.
Vì vậy, thành viên nhân vật người chơi.
Vì vậy, nếu tôi nhấp vào chạy ở đây.
Điều này cũng hoạt động vì nó là một thuộc tính đối tượng lớp.
Nếu tôi.
Đến đâu?
Có lẽ trong cuộc chạy trốn.
Hãy thay đổi điều này.
Để hét lên và.
Và hét lên.
Nó sẽ muốn chạy.
Hãy xóa dòng này.
Nó sẽ được in.
Một chuỗi F cho biết Tên tôi là.
Và đặt cho nó một cái tên.
Bạn có nghĩ rằng điều này sẽ làm việc?
Thử một lần đi.
Hãy nói hét.
Và đảm bảo rằng chúng tôi chạy phương pháp đó và sau đó nhấp vào hét lại.
Nếu tôi bấm Chạy.
Tôi nhận được một tên không khí không được xác định trên dòng 11.
Nếu tôi đi đến dòng 11 ở đây, tên không được xác định.
Tại sao vậy?
Chà, bởi vì chúng ta chưa sử dụng bản thân.
Vì vậy, chúng ta hãy tự làm tên dấu chấm.
Và nếu tôi bấm chạy.
Của bạn đây.
Tên tôi là Tom.
Tên tôi là Cindy.
Được chứ.
Đáng kinh ngạc.
Và tôi có thể sử dụng self vì tôi chuyển nó vào đây làm tham số đầu tiên và tất cả các phương thức đều nhận tham số đầu tiên
là self để chúng ta có thể sử dụng chúng.
Nhưng tôi có thể chỉ đặt tên dấu chấm của nhân vật người chơi nếu tôi nhấp vào chạy.
Tôi nhận được một trò chơi không khí, một nhân vật không có tên thuộc tính.
Bây giờ, tại sao lại như vậy?
Bởi vì tên không phải là một thuộc tính đối tượng lớp.
Nó không thực sự là một thuộc tính hay một thuộc tính của nhân vật người chơi.
Không, nó được định nghĩa trong hàm khởi tạo, hàm init của chúng ta.
Vì vậy, đó là một chút gotcha ở đây và một cái gì đó mà bạn sẽ phải làm quen.
Thuộc tính đối tượng lớp là thứ không thay đổi trong các trường hợp khác nhau so với thuộc
tính hoặc thuộc tính lớp là thứ động và cụ thể cho từng đối tượng lớp.
Cách chúng tôi truy cập chúng khác nhau ở chỗ chúng tôi thực sự có thể tiếp cận tư cách thành viên như thế này.
Nhưng để chúng ta có thể truy cập vào tên hoặc tuổi ở bất kỳ đâu trong lớp của mình, chúng ta phải sử dụng tên tự.
Đó là lý do tại sao bất cứ lúc nào chúng ta tạo một phương thức trong một lớp, ngay cả khi tôi tạo một phương thức
mới ở đây, và giả sử phương thức mới này sẽ được chạy.
Một lần nữa tôi phải sử dụng self làm tham số và sau đó là bất kỳ thứ gì khác mà tôi muốn thêm.
Và đây.
Là tham số thứ hai để khi tôi nhấp vào, giả sử chạy.
Tôi vượt qua trong.
Xin chào.
Lập luận như thế này.
Tôi biết điều này là rất nhiều, nhưng hy vọng bạn đang bắt đầu tuân theo các quy tắc của lớp học.
Một khi bạn nhớ những quy tắc này, sau đó nó sẽ trở nên dễ dàng hơn và dễ dàng hơn.
Nhưng chúng ta sẽ thực hành điều này nhiều hơn một chút trong video tiếp theo.