سلام ممنون از توضیحات من یه بخش از این قسمت کد رو متوجه نشدم
def calculate_vat(func):
def wrapped_func(pur):
vat = VAT[pur.address.country]
total_price = pur.total_price()
return total_price + total_price * vat / 100
return wrapped_func
@calculate_vat
def show_vat_pluse_price(p):
return p.total_price()اینجا تو wrapped_func چجوری ما بهش ورودی pur رو میدیم؟ یعنی از کجا میفهمه این pur در واقع یه purchase هست اخه ما اصلا جایی به این تابع مقداری ندادیم. این مقدار رو از کجا متوجه میشه؟
و یک سوال دیگه چرا دیگه تو تابع show_vat_pluse_price ما میایم return p.total_price() رو مینویسیم مگه وقتی return wrapped_func انجام میشه قیمت نهایی نمیاد تو خروجی