Computer >> Máy Tính >  >> Lập trình >> Python

Truy cập các thuộc tính và phương thức trong Python


Là một ngôn ngữ lập trình hướng đối tượng, python nhấn mạnh vào các đối tượng. Các lớp là bản thiết kế mà từ đó các đối tượng được tạo ra. Mỗi lớp trong python có thể có nhiều thuộc tính bao gồm một chức năng làm thuộc tính.

Truy cập các thuộc tính của một lớp

Để kiểm tra các thuộc tính của một lớp và cũng để thao tác các thuộc tính đó, chúng tôi sử dụng nhiều phương thức tích hợp sẵn trong python như được hiển thị bên dưới.

  • getattr () - Một phương thức python được sử dụng để truy cập thuộc tính của một lớp.

  • hasattr () - Một phương thức python được sử dụng để xác minh sự hiện diện của một thuộc tính trong một lớp.

  • setattr () - Một phương thức python được sử dụng để đặt một thuộc tính bổ sung trong một lớp.

Chương trình dưới đây minh họa việc sử dụng các phương thức trên để truy cập các thuộc tính lớp trong python.

Ví dụ

class StateInfo:
   StateName='Telangana'
   population='3.5 crore'

   def func1(self):
      print("Hello from my function")

print getattr(StateInfo,'StateName')

# returns true if object has attribute
print hasattr(StateInfo,'population')

setattr(StateInfo,'ForestCover',39)

print getattr(StateInfo,'ForestCover')

print hasattr(StateInfo,'func1')

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Telangana
True
39
True

Truy cập phương thức của một lớp

Để truy cập phương thức của một lớp, chúng ta cần khởi tạo một lớp thành một đối tượng. Sau đó, chúng ta có thể truy cập phương thức như một phương thức thể hiện của lớp như được hiển thị trong chương trình bên dưới. Tại đây thông qua tham số self, các phương thức instance có thể truy cập các thuộc tính và các phương thức khác trên cùng một đối tượng.

Ví dụ

class StateInfo:
   StateName='Telangana'
   population='3.5 crore'

   def func1(self):
      print("Hello from my function")

print getattr(StateInfo,'StateName')

# returns true if object has attribute
print hasattr(StateInfo,'population')

setattr(StateInfo,'ForestCover',39)

print getattr(StateInfo,'ForestCover')

print hasattr(StateInfo,'func1')

obj = StateInfo()
obj.func1()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Telangana
True
39
True
Hello from my function

Truy cập phương thức của một lớp này từ một lớp khác

Để truy cập phương thức của một lớp từ một lớp khác, chúng ta cần chuyển một thể hiện của lớp được gọi cho lớp đang gọi. Ví dụ dưới đây cho thấy cách nó được thực hiện.

Ví dụ

class ClassOne:
def m_class1(self):
print "Method in class 1"

# Definign the calling Class
class ClassTwo(object):
def __init__(self, c1):
self.c1 = c1

# The calling method
def m_class2(self):
Object_inst = self.c1()
Object_inst.m_class1()

# Passing classone object as an argument to classTwo
obj = ClassTwo(ClassOne)
obj.m_class2()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Method in class 1