در حال بارگذاری...

پوشش روی تابع

می‌خواهید پیش از سلام، یک خط نوشته شود. greet را با kai اجرا می‌کنید. خط اول صفحه door خواهد بود. خط دوم hi kai خواهد بود.

پوشش اول door را می‌نویسد، بعد سلام اجرا می‌شود

python
def announce(fn):
    def wrapped(name):
        print("door")
        return fn(name)
    return wrapped

@announce
def greet(name):
    return "hi " + name

print(greet("kai"))

صفحه دو خط دارد. خط اول door است. خط دوم hi kai است. شما print(greet("kai")) را نوشته‌اید. این اجرا از خط return داخل greet شروع نمی‌شود. @announce تابع wrapped را دور greet می‌گذارد، پس greet("kai") اول wrapped را اجرا می‌کند. print داخل wrapped کلمهٔ door را می‌نویسد. بعد wrapped سلام را اجرا می‌کند و سلام hi kai را برمی‌گرداند. print دور greet("kai") همان خط دوم را می‌نویسد. برنامه تمام می‌شود. خط سومی نیست.

door سلام نیست. سلام hi kai است. اگر خط @announce بالای greet نباشد، print(greet("kai")) فقط hi kai را می‌نویسد. آن برنامه این یکی نیست. این برنامه @announce دارد، پس خط اول door است و خط دوم hi kai است.

حالا می‌توانید دور یک تابع یک پوشش بگذارید تا یک خط پیش از خط خود تابع اجرا شود. صفحه door است، بعد hi kai. صفحهٔ بعد یک نوع را کنار یک نام می‌نویسد.

یک خط پیش از سلام

خط اول door است. خط دوم hi kai است. door اجرا می‌شود چون @announce بالای greet است. صفحهٔ بعد یک نوع را کنار یک نام می‌نویسد.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
5
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود