Khi nào chúng ta nên sử dụng self trong python?
Tham số self thường được sử dụng trong lập trình hướng đối tượng, tham số self được thêm vào bên trong các phương thức của lớp, trong bài viết này chúng tôi sẽ giải thích cho bạn lý do tại sao nó tồn tại Show Đó là một tham chiếu đến đối tượng. Lý do bạn cần sử dụng bản thân. là do Python sử dụng điều này để chỉ các thuộc tính cá thể khóa học liên quan. Khóa học & bài tập lập trình Python Giới thiệuTrong lập trình hướng đối tượng, bạn có thể tạo nhiều đối tượng từ một lớp Mỗi đối tượng có thể có các giá trị duy nhất cho các biến obj1 = Person() Sau đó đặt (các) biến đối tượng obj1.name = "Sally" Vì vậy, trực quan như thế này Nếu bạn muốn truy cập các biến đối tượng bên trong một lớp thì sao? Lớp không biết giá trị biến nào thuộc về đối tượng nào class Person: Bằng cách sử dụng biến self, nó có thể đặt hoặc lấy các biến đối tượng Python sau đó biết nó nên truy cập các biến cho các đối tượng đó Đoạn mã dưới đây đặt hai giá trị biến Trong một lớp, họ có thể được truy cập bởi class Person:3, điều này đề cập đến bản thân tôi, tôi. e. thuộc tính thể hiện của đối tượng hiện tại class Person: Nếu một đối tượng gọi class Person:4, thì chính đối tượng đó được chuyển thành đối số self as (ẩn) >>> obj1.meet() Nếu bạn là người mới bắt đầu học Python, thì tôi thực sự khuyên bạn nên đọc cuốn sách này tự ví dụNhớ lại rằng bạn có thể tạo các đối tượng từ một lớp Với một lớp, bạn có thể tạo một hoặc nhiều đối tượng duy nhất Một đối tượng có thể được tạo ra như thế này cat = Animal() Khi bạn tạo một đối tượng từ một lớp, chính đối tượng đó được truyền dưới dạng tham số (trong hàm tạo) Xem từ self trong hàm tạo bên dưới Do đó, chính đối tượng được thông qua Nếu bạn tạo hai đối tượng, cả hai sẽ được truyền dưới dạng tham số trong hàm tạo ( class Person:5) obj1.name = "Sally"0 Bởi vì bạn chuyển chính đối tượng đó làm tham số trong hàm tạo, các biến đối tượng có thể được truy cập bằng từ khóa class Person:5 Nếu bạn có lớp như được định nghĩa dưới đây obj1.name = "Sally"2 Nó có một phương thức class Person:7 lấy đối tượng và tên biến Mỗi lần bạn gọi phương thức class Person:7, chính đối tượng đó sẽ được chuyển Từ khóa self có thể được sử dụng để đặt tên đối tượng dòng điện, bạn có thể làm điều này obj1.name = "Sally"5 Chúng trông giống nhau, nhưng chúng khác nhau Phương thức class Person:7 được gọi với một tên khác, nhưng cũng với một đối tượng khác Cuộc gọi đầu tiên chuyển đối tượng cat dưới dạng tham số ẩn (tự) obj1.name = "Sally"0 Cuộc gọi thứ hai chuyển đối tượng dog dưới dạng tham số ẩn (bản thân) obj1.name = "Sally"1 Nếu bạn xuất class Person:0 hoặc class Person:1, bạn sẽ thấy các biến đối tượng đã được thay đổi bên trong lớp Nếu bạn là người mới bắt đầu học Python, thì tôi thực sự khuyên bạn nên đọc cuốn sách này Bạn có thể bỏ qua biến “bản thân” không?Từ khóa self được sử dụng để truy cập các biến đối tượng. Bạn có thể bỏ qua điều này? Câu trả lời ngắn gọn là không Nếu bạn thử, nó sẽ báo lỗi obj1.name = "Sally"2 Đó là bởi vì hàm class Person:2 không chấp nhận đối số bằng 0 nhưng chúng tôi đã cung cấp một đối số Bản thân đối tượng class Person:3 được tự động chuyển thành đối số đầu tiên Đó là lý do tại sao self được yêu cầu làm đối số trong hàm lớp obj1.name = "Sally"3 Vì đối tượng được truyền dưới dạng đối số nên bạn có thể truy cập các biến đối tượng obj1.name = "Sally"4 python tự đối tượngBiến self được liên kết với đối tượng hiện tại Ví dụ dưới đây cho thấy rằng obj1.name = "Sally"5 Bạn có thể tạo đối tượng mới obj1.name = "Sally"6 Sau đó, khi gọi phương thức class Person:4, đối tượng được truyền dưới dạng đối số ẩn obj1.name = "Sally"7 Trên thực tế, đối tượng được truyền cả khi được tạo (đến hàm tạo) và khi gọi phương thức (setBrand) Từ khóa self phải được bao gồm cho mọi phương thức lớp Tại sao không tự ẩn?Trong Python, bạn phải tự viết mỗi lần trong một lớp Nó yêu cầu định nghĩa rõ ràng Triết lý của Python là “Rõ ràng tốt hơn ẩn ý” Bạn có thể đọc thêm về quyết định đó tại đây self trong các ngôn ngữ lập trình khácTrong các ngôn ngữ lập trình khác, bạn có một cái gì đó tương tự với một cú pháp khác Ngôn ngữ lập trình Java đã sử dụng class Person:5 để thay thế obj1.name = "Sally"8 Ruby sử dụng ký hiệu class Person:6 obj1.name = "Sally"9 Mặc dù chúng khác nhau về mặt cú pháp, Tất cả các ngôn ngữ lập trình hướng đối tượng đều đề cập đến dữ liệu đối tượng theo cách tương tự Đó là tất cả cho cùng một mục đích. để truy cập các biến đối tượng trong lớp Vì vậy, bản thân của Python tương tự như class Person:5 của Java, class Person:6 của Ruby và class Person:5 của C++ các biến tương tự cho phương thức lớp và phương thức tĩnhBạn đã học về bản thân trước đây, đây là lớp mặc định thông thường Bây giờ vào một cái gì đó khác nhau. phương pháp lớp Một phương thức lớp có thể được gọi mà không cần tạo đối tượng, bạn gọi nó trực tiếp trên lớp class Person:0 Nếu bạn có một phương thức lớp, bạn có thể sử dụng cls để thay thế class Person:1 Ở đây cls đề cập đến các biến lớp, không phải biến đối tượng class Person:2 Kết quả đầu ra này >>> obj1.meet()0 Đối với một phương thức tĩnh, nó không bắt buộc Đó là bởi vì phương thức tĩnh chỉ là phương thức, chúng không thể truy cập trực tiếp bất kỳ biến lớp hoặc biến đối tượng nào Điều gì xảy ra nếu bạn không sử dụng self trong Python?Nếu không có đối số self, cùng một lớp không thể chứa thông tin cho cả hai đối tượng này . Tuy nhiên, do class chỉ là bản thiết kế nên self cho phép truy cập các thuộc tính và phương thức của từng đối tượng trong python. Điều này cho phép mỗi đối tượng có các thuộc tính và phương thức riêng.
__ init __( bản thân là gì?phương thức __init__
. Nó được gọi là một hàm tạo trong thuật ngữ hướng đối tượng. Phương thức này được gọi khi một đối tượng được tạo từ một lớp và nó cho phép lớp khởi tạo các thuộc tính của lớp |