cuốn sách gpt4 ai đã làm

python - Tại sao nên sử dụng apt.Cache thay vì apt.cache.Cache() để tạo đối tượng

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 00:53:24 35 4
mua khóa gpt4 Nike

Tôi bị mắc kẹt ở mức không thể tiến bộ, xin lỗi vì câu hỏi ngu ngốc. Tôi đã tìm kiếm rất nhiều về điều này nhưng tôi không biết mình đang thiếu gì. Xin hãy giúp tôi.

Tôi đã học các mô-đun và lớp học về python. Bây giờ tôi muốn thực hiện một số thao tác bằng python và apt. Tôi đang học:http://apt.alioth.debian.org/python-apt-doc/library/apt.cache.htmlTuy nhiên, tôi không thể hiểu được, mô-đun đó là apt.cache như được hiển thị ở đầu trang. Tôi đã mong đợi rằng đối tượng nên được tạo bằng cách viết apt.cache.Cache(), nhưng đối tượng được tạo bằng cách viết apt.Cache() như hiển thị bên dưới. Tại sao?

    nhập khẩu thích hợp
nhập apt.progress

# Trước hết hãy mở bộ đệm
bộ đệm = apt.Cache()
# Bây giờ hãy cập nhật danh sách gói
bộ đệm.update ()
# Chúng ta cần mở lại bộ đệm vì nó cần đọc danh sách gói
cache.open(Không có)
# Bây giờ chúng ta có thể làm tương tự như 'apt-get nâng cấp'
cache.upgrade()
# hoặc chúng ta có thể chơi 'apt-get dist-upgrade'
cache.upgrade(Đúng)
# Hỏi: Tại sao không có gì xảy ra?
# A: Bạn quên gọi commit()!
cache.commit(apt.progress.TextFetchProgress(),
apt.progress.InstallProgress())

Câu hỏi tương tự thứ hai là về đoạn mã sau, lớp bộ đệm được nhập từ mô-đun apt.cache. Tôi dự kiến ​​đối tượng sẽ được tạo bằng cách viết apt.cache.Cache(), nhưng nó được tạo bằng cách viết apt.Cache(). Tại sao?

    >>> từ apt.cache nhập FilteredCache, Cache, MarkedChangesFilter
>>> bộ đệm = apt.Cache()
>>> đã thay đổi = apt.FilteredCache(cache)
>>> đã thay đổi.set_filter(MarkedChangesFilter())
>>> print len(đã thay đổi) == len(cache.get_changes()) # Cả hai cần có cùng độ dài
ĐÚNG VẬY

提前致谢

câu trả lời hay nhất

Nếu bạn nhìn vào apt __init__.py tài liệu bưu kiện , bạn sẽ thấy dòng này:

__all__ = ['Bộ nhớ đệm', 'Cdrom', 'Gói']

trăn documentation说:

Câu lệnh nhập sử dụng quy ước sau: nếu mã __init__.py của gói xác định danh sách có tên tất cả, nó được coi là danh sách các tên mô-đun cần được nhập khi gặp from package import * .

Đây là cách bạn có thể sử dụng apt.Cache()

lý do

Đối với phần thứ hai của câu hỏi, bạn có thể nhập trực tiếp lớp Cache

từ apt.cache nhập Bộ nhớ đệm
bộ đệm = Bộ đệm()

Bạn cũng có thể nhập các lớp bộ đệm

nhập khẩu thích hợp
cache = apt.Cache() //vì biến __all__ trong __init__.py
cache = apt.cache.Cache() //vì đó là tên đầy đủ

Về python - tại sao nên sử dụng apt.Cache thay vì apt.cache.Cache() để tạo đối tượng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/28933807/

35 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress