class MultifunctionPrinter:
def __init__(self, initial_ink=100, initial_paper=100):
# 墨盒剩余量,初始化时设置为传入的初始墨盒量
self.ink_level = initial_ink
# 纸张数量,初始化时设置为传入的初始纸张量
self.paper_count = initial_paper
def print_document(self, pages):
# 打印功能,检查纸张和墨盒是否足够
if self.paper_count < pages or self.ink_level < pages:
if self.paper_count < pages:
print(f"纸张不足,需要 {pages - self.paper_count} 张纸")
if self.ink_level < pages:
print(f"墨盒墨水不足,需要 {pages - self.ink_level} 单位墨水")
else:
self.paper_count -= pages
self.ink_level -= pages
print(f"成功打印 {pages} 页")
def scan_document(self, pages):
# 扫描功能,只消耗纸张
if self.paper_count < pages:
print(f"纸张不足,需要 {pages - self.paper_count} 张纸")
else:
self.paper_count -= pages
print(f"成功扫描 {pages} 页")
def copy_document(self, pages):
# 复印功能,消耗纸张和墨盒
if self.paper_count < pages or self.ink_level < pages:
if self.paper_count < pages:
print(f"纸张不足,需要 {pages - self.paper_count} 张纸")
if self.ink_level < pages:
print(f"墨盒墨水不足,需要 {pages - self.ink_level} 单位墨水")
else:
self.paper_count -= pages
self.ink_level -= pages
print(f"成功复印 {pages} 页")
- 属性:
ink_level
:表示墨盒剩余量。
paper_count
:表示纸张数量。
- 方法:
__init__
:初始化方法,用于设置打印机墨盒和纸张的初始量。
print_document
:打印方法,接受要打印的页数作为参数。首先检查纸张和墨盒是否足够,如果不足则提示缺少的资源量;如果足够则减少相应的纸张和墨盒量,并提示打印成功。
scan_document
:扫描方法,接受要扫描的页数作为参数。检查纸张是否足够,如果不足则提示缺少的纸张量;如果足够则减少纸张量,并提示扫描成功。
copy_document
:复印方法,接受要复印的页数作为参数。检查纸张和墨盒是否足够,如果不足则提示缺少的资源量;如果足够则减少相应的纸张和墨盒量,并提示复印成功。
- 资源消耗逻辑:在
print_document
和copy_document
方法中,每次执行操作时会根据操作的页数减少墨盒剩余量和纸张数量;在scan_document
方法中,只根据扫描的页数减少纸张数量。如果资源不足,则不会执行操作并给出相应提示。