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

Tài liệu tham khảo yếu về Python

Để tạo các tham chiếu yếu trong python, chúng tôi cần sử dụng yếu tố phản hồi mô-đun. Yếu tố không đủ để giữ cho đối tượng tồn tại. Cách sử dụng cơ bản của tham chiếu yếu là triển khai bộ đệm hoặc ánh xạ cho một đối tượng lớn.

Để sử dụng mô-đun này, chúng ta nên nhập nó bằng cách sử dụng -

import weakref

Không phải tất cả các đối tượng đều có thể được tham chiếu yếu. Một số kiểu tích hợp như tuple hoặc int, không hỗ trợ tham chiếu yếu. Có một số lớp và phương thức liên quan đến tham chiếu yếu.

Lớp yếuref.ref (đối tượng [, gọi lại])

Nó sẽ trả về một tham chiếu yếu cho đối tượng. Khi đối tượng tham chiếu vẫn còn tồn tại, đối tượng thực tế có thể được truy xuất bằng cách gọi đối tượng tham chiếu, nhưng khi đối tượng thực tế không có mặt, nó sẽ trả về Không có .

Phương thức thinref.proxy (object [, callback])

Phương thức này được sử dụng để trả về một proxy cho đối tượng đang sử dụng tham chiếu yếu. Đối tượng trả về có thể là ProxyType hoặc CallableProxyType.

Phương thức thinref.getweakrefcount (đối tượng)

Phương thức này được sử dụng để trả về số lượng tham chiếu yếu và proxy của các đối tượng.

Phương thức thinref.getweakrefs (đối tượng)

Phương thức này được sử dụng để trả về danh sách các tham chiếu yếu và các đối tượng proxy.

Mã mẫu

import weakref
class my_list(list):
   pass
new_list = my_list('String') #Use my_list class to define a list
print(new_list)
weak_ref = weakref.ref(new_list)
new_weak_list = weak_ref()
new_proxy = weakref.proxy(new_list)
print(new_weak_list)
print('The object using proxy: ' + str(new_proxy))
if new_list is new_weak_list:
   print("There is a weak reference")
print('The Number of Weak references: ' + str(weakref.getweakrefcount(new_list)))
del new_list, new_weak_list #Delete both objects
print("The weak reference is: " + str(weak_ref()))

Đầu ra

['S', 't', 'r', 'i', 'n', 'g']
['S', 't', 'r', 'i', 'n', 'g']
The object using proxy: ['S', 't', 'r', 'i', 'n', 'g']
There is a weak reference
The Number of Weak references: 2
The weak reference is: None