نمایش نتایج 1 تا 4 از 4

نام تاپیک: تعداد پارامتر ورودی

  1. #1

    Angry تعداد پارامتر ورودی

    Capture.PNG
    با سلام:
    سوالم اینه که چرا موقع تعریف چهار پارامتر ورودی داریم اما موقع صدا زدن متد با سه تا صدا میزنیم.
    سوال دیگم هم اینه که اون super() اشاره به کدوم شی داره

  2. #2
    کاربر تازه وارد آواتار sd702004
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    مشهد
    پست
    90

    نقل قول: تعداد پارامتر ورودی

    self (که میتونید هر نام دیگه ای هم بجاش بذارید) اشاره داره به خود کلاس و میشه اونو یک اینستنس از کلاس در نظر گرفت (تا حدی مشابه this در زبان هایی مثل سی++ یا جاوا). دلیل این که self رو به درون constructor و متدها pass میکنیم اینه که بشه به متدها و اعضای کلاس دسترسی داشت. هنگام ساخت یک instance از کلاس یا فراخوانی متدها، self بصورت خودکار pass میشه و بنابراین نیازی نیست (و نباید) موقع فراخوانی اون رو بنویسیم.

    مثلا در constructor متغیرهایی به نام square_feet و num_bedrooms تعریف شده. اگر این متغیرهای بدون پیشوند self تعریف میشدن فقط در scope خود constructor بودن و در خارج از __init__ امکان دسترسی بهشون نبود. یا مثلا در این کلاس متدی وجود داره به نام display که هیچ آرگومانی موقع فراخوانی نمیگیره اما در بدنه همین تابع از متغیرهای num_bedrooms و num_batchs استفاده شده و دلیل اینکه این کار امکان پذیره اینه که در تعریف این متد، self رو بهش pass کردیم
    آخرین ویرایش به وسیله sd702004 : پنج شنبه 10 مرداد 1398 در 22:39 عصر

  3. #3

    نقل قول: تعداد پارامتر ورودی

    ممنون از پاسخی که دادید اما سوال من این بود که چرا ما چهار پارامتر ورودی داریم اما به سه تا صدا می زنیم.
    و

    super().init(**kwargs)

    اشاره به کدوم کلاس داره ما که از کلاسی به صورت وراثت استفاده نکردیم

  4. #4
    کاربر تازه وارد آواتار sd702004
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    مشهد
    پست
    90

    نقل قول: تعداد پارامتر ورودی

    *args و **kwargs آرگومان های اختیاری هستن و هنگام فراخوانی ضرورتی به نوشتن شون نیست. اولی از نوع tuple و دومی از نوع keyword ـیه. البته در مثال شما چون تمام آرگومانها مقداردهی پیشفرض شدن همه شون تبدیل به نوع اختیاری شدن

    در رابطه با سوال دوم در پایتون وقتی یک کلاس میسازیم، این کلاس به طور خودکار یک زیرکلاس از Object هستش. در واقع Object پرنت تمام کلاس های پایتونه. فکر نمیکنم نیازی باشه تا صریحا کانستراکتر این کلاس فراخوانی بشه

    توضیح راهنمای پایتون:
    object is a base for all classes. It has the methods that are common to all instances of Python classes

تاپیک های مشابه

  1. راهنمایی در مورد تعریف تعداد ستون های بیشتر در اکسس 2003
    نوشته شده توسط unforgiven در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 4
    آخرین پست: یک شنبه 17 بهمن 1395, 18:42 عصر
  2. پاسخ: 6
    آخرین پست: دوشنبه 04 اسفند 1393, 22:14 عصر
  3. پاسخ: 5
    آخرین پست: سه شنبه 18 تیر 1392, 11:56 صبح
  4. پاسخ: 2
    آخرین پست: جمعه 17 شهریور 1391, 07:03 صبح
  5. ایا می توان در تعریف تابع یا رویه ، آرگومانی را اختیاری تعریف کرد
    نوشته شده توسط Developer Programmer در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: سه شنبه 18 مرداد 1384, 11:09 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •