Hướng dẫn is self a variable in python? - self có phải là một biến trong python không?

Biến bản thân Python được sử dụng để liên kết thể hiện của lớp với phương thức thể hiện. Chúng ta phải tuyên bố rõ ràng đó là đối số phương thức đầu tiên để truy cập các biến và phương thức thể hiện. Biến này chỉ được sử dụng với các phương thức thể hiện.

Trong hầu hết các ngôn ngữ lập trình hướng đối tượng, bạn có thể truy cập đối tượng hiện tại trong một phương thức mà không cần phải có nó như một tham số phương thức. Ví dụ: chúng ta có thể sử dụng từ khóa này để truy cập đối tượng hiện tại trong chương trình Java. Nhưng, trong Python, chúng ta phải tuyên bố rõ ràng thể hiện đối tượng là biến bản thân.this” keyword to access the current object in Java program. But, in Python we have to explicitly declare the object instance as “self” variable.


Python tự là một từ khóa?

Biến bản thân Python không phải là một từ khóa dành riêng. Nhưng, đó là cách thực hành và quy ước tốt nhất để sử dụng tên biến như là bản thân để chỉ đối thủ.


Ví dụ về bản thân Python

Hãy nói rằng chúng tôi có một lớp học chó được xác định như dưới đây.

class Dog:

    def __init__(self, breed):
        self.breed = breed

    def bark(self):
        print(f'{self.breed} is barking.')


d = Dog('Labrador')
d.bark()

Đầu ra: Labrador is barking.: Labrador is barking.

  • Hàm __init __ () được xác định với hai biến nhưng khi chúng tôi tạo phiên bản chó, chúng tôi chỉ phải cung cấp một đối số. Bản thân của người Viking được tự động được gán cho phiên bản mới được tạo của lớp chó.
  • Phương thức vỏ cây () chỉ có một đối số - bản thân - có liên kết với thể hiện chó gọi phương pháp này. Đó là lý do tại sao chúng tôi không truyền bất kỳ đối số nào khi gọi phương thức Bark ().
  • Nếu chúng ta phải truy cập bất kỳ biến thể hiện nào trong hàm, chúng ta có thể sử dụng toán tử DOT.

Chúng ta có thể bỏ qua biến bản thân không?

Điều gì sẽ xảy ra nếu phương thức thể hiện không cần truy cập các biến thể hiện. Chúng ta có thể bỏ qua biến bản thân trong trường hợp này không?

Hãy cùng tìm hiểu với một ví dụ đơn giản.

class Dog:

    def bark():
        print('Barking')

d = Dog()
print("Done")

Nếu bạn sẽ chạy mã trên, sẽ giành được bất kỳ lỗi nào. Nhưng, chúng tôi không gọi phương thức Bark (). Hãy để xem những gì xảy ra khi chúng ta cố gắng gọi phương thức Bark ().

Hướng dẫn is self a variable in python? - self có phải là một biến trong python không?
Phương thức thể hiện Python không có lỗi

Chúng tôi đang gặp lỗi khi phương thức Bark () chấp nhận đối số 0 nhưng chúng tôi đã cung cấp 1. Đó là vì khi chúng tôi gọi d.bark(), phiên bản của D D được tự động chuyển làm đối số đầu tiên cho phương thức cá thể Bark ().

Nhưng, nếu chúng ta truy cập phương thức cá thể Bark () thông qua tham chiếu lớp thì nó sẽ hoạt động tốt. Vì vậy, gọi

class Dog:

    def bark():
        print('Barking')

d = Dog()
print("Done")
0 sẽ không gây ra bất kỳ lỗi nào.
class Dog:

    def bark():
        print('Barking')

d = Dog()
print("Done")
0 will not cause any errors.


Các biến tương tự cho phương pháp lớp và phương pháp tĩnh?

Hành vi tương tự cũng có với các phương pháp lớp. Sự khác biệt duy nhất là quy ước là sử dụng CL CLS làm tên biến cho tham chiếu lớp.cls” as the variable name for the Class reference.

class Dog:

    @classmethod
    def walk(cls):
        print('Dog is Walking')


Dog.walk()

Tuy nhiên, nó không bắt buộc với một phương pháp tĩnh. Bởi vì, các phương thức tĩnh là các hàm tự đủ và chúng có thể truy cập trực tiếp vào bất kỳ biến hoặc hàm lớp nào.

Hãy cùng xem xét một ví dụ hoàn chỉnh với các biến bản thân và CLS và phương pháp tĩnh mà không có bất kỳ đối số nào.self and cls variables and a static method without any arguments.

class Dog:

    def __init__(self, breed):
        self.breed = breed

    @classmethod
    def walk(cls):
        print('Dog is Walking')

    # instance method
    def bark(self):
        print(f'{self.breed} is barking.')

    @staticmethod
    def add(x, y):
        return x + y


Dog.walk()
d = Dog('Labrador')
d.bark()
print(Dog.add(10, 20))

Output:

Dog is Walking
Labrador is barking.
30


Ví dụ nhanh để phá vỡ quy ước

Ví dụ này chỉ là để cho bạn thấy rằng nó không bắt buộc phải sử dụng tên biến như là bản thân và bản thân CL. Trong lập trình thực sự, luôn luôn tuân thủ quy ước này.In real programming, always stick to this convention.

class Dog:

    @classmethod
    def walk(myclass):
        print('Dog is Walking')

    # instance method
    def bark(myobject):
        print('Dog is Barking.')

Dog.walk()
d = Dog()
d.bark()


Biến bản thân "được liên kết với thể hiện hiện tại

Biến bản thân cho phép chúng tôi truy cập vào các thuộc tính thể hiện hiện tại. Chúng tôi có thể xác nhận điều này bằng một ví dụ đơn giản bằng cách tạo hai trường hợp khác nhau của lớp chó.

class Dog:

    def __init__(self, b):
        self.breed = b

    def bark(self):
        print(f'{self.breed} is Barking.')


d1 = Dog('Labrador')
d2 = Dog('Husky')

d1.bark()
d2.bark()

Output:

Labrador is Barking.
Husky is Barking.


Tại sao không tạo ra biến bản thân của người Viking?

Đã có rất nhiều gợi ý để biến biến tự cho mình thành một từ khóa dành riêng và hoàn toàn có sẵn cho phương thức thể hiện. Nhưng, đề nghị đã bị từ chối bởi Hồi Guido Van Rossum. Bạn có thể đọc về họ ở đây và ở đây.

Bản thân có phải là một đối tượng không?

Từ khóa tự được sử dụng để thể hiện một thể hiện (đối tượng) của lớp đã cho..

Bản thân có phải là một con trỏ không?

Biến P đó điểm đến một đối tượng điểm (hãy nhớ các biến là con trỏ trong Python).Đó là biến bản thân trong cuộc gọi phương thức của chúng tôi chỉ vào cùng một đối tượng chính xác.Vì vậy, bản thân thực sự chỉ là một biến số chỉ vào trường hợp của lớp chúng tôi mà chúng tôi hiện đang làm việc.self is really just a variable that points to the instance of our class that we're currently working with.

Bạn có thể tự đặt mình trong Python không?

Tự chỉ là một tham chiếu đến thể hiện hiện tại trong phương thức.Bạn không thể thay đổi thể hiện của mình bằng cách tự đặt bản thân.Lưu câu trả lời này.You can't change your instance by setting self . Save this answer.

__ tự __ là gì?

Bản thân trong từ khóa trong Python được sử dụng cho tất cả các trường hợp trong một lớp.Bằng cách sử dụng từ khóa tự, người ta có thể dễ dàng truy cập tất cả các trường hợp được xác định trong một lớp, bao gồm các phương thức và thuộc tính của nó.trong đó.__init__ là một trong những phương pháp dành riêng trong Python.Trong lập trình định hướng đối tượng, nó được gọi là một hàm tạo.used to all the instances in a class. By using the self keyword, one can easily access all the instances defined within a class, including its methods and attributes. init. __init__ is one of the reserved methods in Python. In object oriented programming, it is known as a constructor.