Hướng dẫn what is reference variable in oops in python? - biến tham chiếu trong oops trong python là gì?

Python: Các biến và phương pháp ví dụ, tĩnh và cục bộ

Như chúng ta đã biết, lớp là một nguyên mẫu hoặc một thiết kế của bất kỳ đối tượng nào trong sự tồn tại. Nó đại diện cho một tập hợp các thuộc tính và hành vi của một đối tượng.Class is a prototype or a design of any object in the existence. It represents a set of properties and behaviour of an object.

Đối tượng là sự tồn tại vật lý của lớp, nó có thể được gọi là một ví dụ của một lớp. is a physical existence of the class, it can be referred as an instance of a class.

Một lớp chứa:

  • Các biến (mô tả các thuộc tính nhất định của một đối tượng) và ( which depicts certain properties of an object ) and
  • Các phương thức (đại diện cho một tập hợp hành vi của một đối tượng). ( represents a set of behaviour of an object ).

Ví dụ, nhân viên lớp có ba biến đại diện cho các thuộc tính của một nhân viên bởi EMP_ID, EMP_NAME và EMP_ADDRESS.

Lớp học cũng có các phương pháp gọi là làm việc và ăn trưa, không có gì ngoài một tập hợp các hành vi của một nhân viên tại văn phòng sử dụng lao động.

Các biến trong một lớp có liên quan đến một đối tượng, với một lớp hoặc một phương thức.object, to a class or to a method.

Có ba loại biến khác nhau trong OOP trong Python.

  1. Biến thể hiện (Biến mức đối tượng) ( Object level variable )
  2. Biến tĩnh (Biến cấp lớp) ( Class level variable )
  3. Biến cục bộ (Biến cấp phương pháp)( Method level variable )

Ba loại phương pháp khác nhau trong OOPS trong Python.

  1. Phương thức thể hiện
  2. Phương pháp tĩnh
  3. Phương pháp lớp

Biến tham chiếu: Biến này là một tham chiếu hoặc một con trỏ tới một đối tượng để thực hiện các hoạt động trên đối tượng đó. Các biến tham chiếu luôn chỉ vào một đối tượng.This variable is a reference or a pointer to an object to perform operations on that object . Reference variables always points to a object.

Hãy để một ví dụ về lớp nhân viên.

Ở đây, ‘E, là biến tham chiếu, chỉ vào đối tượng nhân viên.

Từ khóa tự là một biến tham chiếu ngầm đến đối tượng hiện tại của lớp và chỉ có sẵn bên trong lớp, không phải bên ngoài lớp, do đó biến và phương thức bên trong lớp có thể sử dụng các biến/phương thức khác trong cùng một lớp.keyword is an implicit reference variable to the current object of the class and is available only inside the class, not outside of the class, so that variable and methods inside the class can use other variables/methods inside the same class.

Sau khi tạo lớp, một đối tượng của lớp nhân viên được gọi là ‘E, được tạo.

e=Employee()

Ở đây, ‘E, là một biến tham chiếu rõ ràng của đối tượng, để mọi người bên ngoài lớp có thể truy cập các biến hoặc phương thức của lớp.

Đối tượng ‘E, có giá trị mặc định của tên là‘ pranay, công ty là ‘Amazon, và địa chỉ là Vương quốc Anh. Bất kỳ đối tượng nào chúng tôi tạo ra khỏi nhân viên lớp sẽ có các giá trị này (tên, công ty và địa chỉ) được đặt làm mặc định.

Do đó, đây là các biến liên quan đến đối tượng và chúng cũng được gọi là biến thể hiện.Instance variables.

Lưu ý: Cũng có thể xác định các biến mà không có hàm tạo. Tuy nhiên, nó sẽ không phải là các biến thể hiện sau đó (chúng sẽ được gọi là biến tĩnh, mà chúng ta sẽ thảo luận trong thời gian ngắn).: It is also possible to define variables without constructor. However, it will not be instance variables then( those will be called as static variables, which we will discuss shortly).

Cho đến nay, chúng tôi đã hiểu rằng đối với đối tượng của nhân viên, chúng tôi có hai biến tham chiếu: tự (bên trong lớp) và ‘E, (bên ngoài lớp).self ( inside the class ) and ‘e’ ( outside the class ).

Details of the employee:  Pranay Amazon UK

Ở đây, Empdetails có đối số đầu tiên của nó là bản thân và nếu chúng ta không cung cấp nó, các thuộc tính liên quan đến đối tượng không thể được truy cập bằng phương thức Empdetails. Do đó, phương thức Empdetails là một phương thức thể hiện.Instance method.

Mỗi phương thức thể hiện có và phải có bản thân là đối số đầu tiên. Nếu chúng tôi không cung cấp nó, chương trình sẽ gây ra lỗi.

Khi chúng tôi tạo nhiều đối tượng (hãy nói: E1, E2, E10) của nhân viên, tên, công ty và địa chỉ là khác nhau cho mỗi nhân viên. Do đó, chúng ta có thể nói rằng các biến thể hiện (biến mức đối tượng) là các biến trong đó giá trị thay đổi đối tượng ROM theo đối tượng.Instance variables ( object level variables )are variables where value varies rom object to object.

Chúng ta có thể khai báo các biến thể hiện:

  • Bên trong một hàm tạo bằng cách sử dụng bản thân (hiển thị ở trên).
  • Bên trong một phương thức thể hiện.
  • Bên ngoài lớp bằng cách sử dụng tham chiếu đối tượng.

Các biến thể hiện được tạo tại thời điểm tạo đối tượng và sẽ bị phá hủy khi nó đi vào bộ sưu tập rác.

Đối với mỗi đối tượng bản sao riêng biệt của các biến thể hiện sẽ được tạo.separate copy of instance variables will be created.

Chúng ta có thể sử dụng __dict__ để biết các biến thể hiện và các giá trị tương ứng của chúng của một đối tượng. Nó trả về các giá trị theo định dạng từ điển.__dict__ to know the instance variables and their corresponding values of an object. It returns values in a dictionary format.

{'name': 'Pranay', 'company': 'Amazon'}
{'name': 'Pranay', 'company': 'Amazon', 'address': 'UK'}
{'name': 'Pranay', 'company': 'Amazon', 'address': 'UK', 'empid': 3003}

Trong ví dụ trên, có hai biến thể hiện sẽ được khởi tạo với hàm tạo -Name và công ty.

Địa chỉ biến thể hiện không được khởi tạo khi một đối tượng ‘E, được tạo vì nó nằm trong phương thức địa chỉ và phương thức này không được khởi tạo khi đối tượng’ e Hồi được tạo. Do đó, nó không phải là một phần của đầu ra E .__ Dict__ lần đầu tiên.

Bài đăng địa chỉ gọi Phương thứcMethod của E.AddressMethod, địa chỉ biến thể hiện được khởi tạo và có thể được nhìn thấy trong câu lệnh in thứ hai.

Khai báo một biến thể hiện thứ tư từ bên ngoài lớp (e.empid = 3003). Gọi E .__ Dict__ lần cuối cùng sẽ trả về biến trường hợp thứ tư cùng với các biến thể hiện được khởi tạo khác.

Chúng ta cũng có thể xóa các biến thể hiện (hiển thị bên dưới).delete instance variables ( shown below ).

  • Trong lớp (del self.variablename)del self.variablename )
  • Bên ngoài lớp (Del ObjectName.variablename)del objectname.variablename )
{'name': 'Pranay', 'company': 'Amazon', 'address': 'UK'}
{'company': 'Amazon', 'address': 'UK'}
{'address': 'UK'}

Tiếp theo, có thể có khả năng có một số biến vẫn giữ nguyên cho tất cả các đối tượng và không thay đổi như trong trường hợp các biến thể hiện. Các loại biến này được gọi là biến tĩnh.Static variables.

Ví dụ, đối với nhân viên làm việc trong cùng một công ty, tên công ty của họ vẫn giữ nguyên.

Name of the company:  Amazon
Employee ID: 3003
Name of the company: Amazon
Employee ID: 3003

Trong ví dụ trên, chúng tôi đã tạo ra nhiều đối tượng của nhân viên lớp và cho tất cả chúng tên công ty vẫn giữ nguyên. Chỉ có một bản sao cho biến tĩnh sẽ được tạo và sẽ được chia sẻ với các đối tượng khác. Điều này cũng cải thiện hiệu suất.

Các biến tĩnh có thể được truy cập bằng tên lớp hoặc tham chiếu đối tượng.

Chúng ta có thể khai báo các biến tĩnh:

  1. Bên trong một lớp nhưng bên ngoài bất kỳ phương thức hoặc hàm tạo.
  2. Bên trong Constructor sử dụng ClassName.
  3. Phương thức thể hiện bên trong sử dụng tên lớp.
  4. Bên trong phương thức lớp sử dụng tên lớp hoặc biến CLS.
  5. Bên trong phương thức tĩnh bằng cách sử dụng tên lớp.
  6. Từ bên ngoài lớp bằng cách sử dụng tên lớp.
Company location is:  AFRICA
Company area: 5000
Machine serial number is: 121212
{'__module__': '__main__', 'company': 'AMAZON', '__init__': , 'showDetails': , 'companyLocation': , 'machineSerialNum': , '__dict__': , '__weakref__': , '__doc__': None, 'location': 'DENMARK', 'salary': 10000, 'company_loc': 'AFRICA', 'company_area': 5000, 'mach_serial_num': 121212}We can modify a static variable by using class name or cls.

Các phương thức tĩnh là các phương pháp không sử dụng các biến thể hiện cũng như biến tĩnh. Nó là một phương pháp độc lập và thường là một phương pháp tiện ích.are the methods which neither use instance variables nor static variable. It is a standalone method and is generally a utility method.

Chúng ta có thể đề cập đến một trang trí @staticmehtod khi bắt đầu bất kỳ phương thức tĩnh nào (như được hiển thị ở trên)

Tiếp theo, để hiểu phương pháp lớp, chúng ta hãy xem ví dụ dưới đây.Class method, let us take a look at the below example.

Trong ví dụ này, tại sao chúng tôi không sử dụng hoặc sử dụng bản thân cho các thuộc tính phương thức? Vì chúng tôi không xem xét hoặc thực hiện bất kỳ loại hoạt động nào trên các biến thể hiện (biến mức đối tượng).

Chúng tôi chỉ quan tâm đến việc sử dụng dữ liệu cấp lớp. Các phương thức như vậy chỉ dành cho các lớp và chúng tôi gọi nó là phương thức lớp. Chúng tôi chỉ định công cụ trang trí @ClassMethod khi khai báo phương pháp lớp.Class method. We specify @classmethod decorator when declaring a class method.

Bạn cũng có thể nhận thấy ‘CLS, được thông qua trong đối số phương thức lớp. Sử dụng CLS, chúng tôi có thể truy cập bất kỳ dữ liệu lớp nào.cls’ passed in the class method argument. Using cls, we can access any class data.

Chúng tôi có thể tham khảo bất kỳ biến lớp nào bằng cách sử dụng ClassName hoặc CL (như trong ví dụ)

CLS đề cập đến lớp hiện tại, trong đó tự tham khảo đối tượng hiện tại.

Các biến cục bộ được giới hạn trong khu vực phương thức của nó, nơi nó đã được khai báo. Các biến được khai báo bên trong một phương thức chỉ có thể được sử dụng trong cùng một phương thức. are confined to it’s method area where it has been declared. Variables declared inside a method can be used in the same method only.

Bạn có thể tìm thấy tất cả các mã được sử dụng trong các ví dụ trên @ https://github.com/gorepranay/object_oriented_programming_in_python/blob/master/variable_and_methods_in_python_oops.ipynb

Cảm ơn vì đã đọc nó. Chúc mừng :-)

Biến tham chiếu trong Python với ví dụ là gì?

Xuất bản ngày 22 tháng 4 năm 2019. Trong Python khi chúng ta gán một giá trị cho một tên, chúng ta thực sự tạo một đối tượng và tham chiếu đến nó. Ví dụ: trong a = 1, một đối tượng có giá trị '1' được tạo trong bộ nhớ và tham chiếu 'A' hiện chỉ vào nó.when we assign a value to a name, we actually create an object and a reference to it. For example in a=1, an object with value '1' is created in memory and a reference 'a' now points to it.

Biến tham chiếu với ví dụ là gì?

Biến tham chiếu là một tên thay thế của biến đã có.Nó không thể được thay đổi để giới thiệu một biến khác và nên được khởi tạo tại thời điểm khai báo và không thể là null.Toán tử '&' được sử dụng để khai báo biến tham chiếu.Sau đây là cú pháp của biến tham chiếu.an alternate name of already existing variable. It cannot be changed to refer another variable and should be initialized at the time of declaration and cannot be NULL. The operator '&' is used to declare reference variable. The following is the syntax of reference variable.

Tài liệu tham khảo trong OOP là gì?

Một loại tham chiếu đề cập đến một thể hiện của một lớp hoặc đối tượng.Không giống như các loại nguyên thủy giữ các giá trị của chúng trong bộ nhớ trong đó biến được phân bổ, các tài liệu tham khảo không giữ giá trị của đối tượng mà chúng đề cập đến.an instance of a class or object. Unlike primitive types that hold their values in the memory where the variable is allocated, references do not hold the value of the object they refer to.

Làm thế nào để bạn tạo một biến tham chiếu trong Python?

Tuy nhiên, trong Python, biến chỉ là một tên được đặt cho một đối tượng trong bộ nhớ.Ngay cả khi chúng ta gán giá trị của nó cho một biến khác, cả hai thực tế đều đề cập đến cùng một đối tượng trong bộ nhớ.Điều này có thể được xác minh bằng hàm id ().Do đó, rõ ràng là trong Python, chúng ta không thể tạo tham chiếu đến một biến.we can not create reference to a variable.