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

نام تاپیک: ضرورت استفاده از کلاس ؟

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    ضرورت استفاده از کلاس ؟

    سلام دوستان من یه تازه کار تو پایتون هستم ، قبلاً php کار کرده بودم ولی هیچ وقت با کلاس کار نکرده بودم و همیشه ازشون خوف داشتم ولی الان با پایتون دارم رو کلاس ها کار میکنم ولی نمیفهمم واقعاً استفاده از کلاس چه فایده و ضرورتی داره ؟
    من دارم آموزشم رو با کتاب Headfirst جلو می برم ، مثلاً تو یکی از قسمت ها نوشته که این کلاس میتونه به هر نفر یک شی اختصاص بده
    class Athlete:
    def __init__(self, a_name, a_dob=None, a_times=[]):
    self.name = a_name
    self.dob = a_dob
    self.times = a_times

    و درست هم کار میکنه ولی نمیفهمم چه ضرورتی هست که ما بیایم برای این کار از کلاس استفاده کنیم در حالی که من همین کد رو با تابع نوشتم و کار می کرد
    def cre(names,familys):
    cre.name=names
    cre.family=familys
    return(cre.name,cre.family)
    james=cre('ali','sadeghi')
    ali=cre('ali','dabagh')

    print(james)
    print(ali)
    print(type(ali))



    لطفاً دوستان راهنمایی کنند چون خیلی گیج شدم
    آخرین ویرایش به وسیله arefenayat : سه شنبه 28 بهمن 1393 در 12:08 عصر

  2. #2
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: ضرورت استفاده از کلاس ؟

    مهمترین چیزهایی که شما با این حرکت از دست دادید اینهاست:
    • ارث بری
    • امکان تعریف متد در داخل کلاس
    • امکان دسترسی به داده های هر instance از کلاس
    • ...

  3. #3

    نقل قول: ضرورت استفاده از کلاس ؟

    نقل قول نوشته شده توسط n.nowroozi مشاهده تاپیک
    مهمترین چیزهایی که شما با این حرکت از دست دادید اینهاست:
    • ارث بری
    • امکان تعریف متد در داخل کلاس
    • امکان دسترسی به داده های هر instance از کلاس
    • ...
    ممنون ولی خیلی کلی گفتید من که نفهمیدم (زیر دیپلم)
    کلاً اگر میشه یه توضیح خوبی بدین ببینم این کلاس اصلاً به چه درد میخوره ؟ مهمتر از همه اینه من نمیدونم چه زمانی باید از کلاس استفاده کنم

    راستی یه سوال دیگه

    __init__

    __call__

    کاربرد اینا چی هست ؟؟؟؟

  4. #4
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: ضرورت استفاده از کلاس ؟

    جواب سوالت رو توی این لینک میتونی ببینی .

    فرض کن یه سری داده راجع وسایل حمل و نقل عمومی داری که میخوای توی یه دیتابیس ذخیره کنی.. یه کلاس پدر داری که توش ویژگیهایی عمومی وسایل نقلیه رو داری.. مثلا سال ساخت تعداد افرادی که میتونه جابجا کنه با سرعت جابجایی.. تو مرحله بعد میای اینهارو میشکنی به چند نوع داده مختلف مثل هواپیما ماشین و کشتی.. توی این مرحله واسه هرکدوم از اینها یه کلاس تعریف میکنی که توش ويژگیهای منحصر به فرد اون وسیله توش هست. مثلا کلاس ماشین شامل دارا بودن فرمان هیدرولیک و آپشنهای دیگه ماشینه و برای هواپیما و کشتی هم همینطور.. مزیت کلاس اینجا اینه که دیگه نیازی نیست شما ويژگیهای عام رو که در کلاس پدر تعریف شده مثل تعداد سر نشین و سال ساخت رو ذکر کنی فقط کافیه ارث بری کنی .. زمانی که ارث بری رو انجام میدی هر ويژگی ای پدر داشته باشه فرزند هم داره.. حالا این ساده ترین مثال از ارث بری بود که هرچه برنامت بزرگتر بشه این نیازرو بیشتر احساس میکنی.

  5. #5

    نقل قول: ضرورت استفاده از کلاس ؟

    نقل قول نوشته شده توسط n.nowroozi مشاهده تاپیک
    جواب سوالت رو توی این لینک میتونی ببینی .

    فرض کن یه سری داده راجع وسایل حمل و نقل عمومی داری که میخوای توی یه دیتابیس ذخیره کنی.. یه کلاس پدر داری که توش ویژگیهایی عمومی وسایل نقلیه رو داری.. مثلا سال ساخت تعداد افرادی که میتونه جابجا کنه با سرعت جابجایی.. تو مرحله بعد میای اینهارو میشکنی به چند نوع داده مختلف مثل هواپیما ماشین و کشتی.. توی این مرحله واسه هرکدوم از اینها یه کلاس تعریف میکنی که توش ويژگیهای منحصر به فرد اون وسیله توش هست. مثلا کلاس ماشین شامل دارا بودن فرمان هیدرولیک و آپشنهای دیگه ماشینه و برای هواپیما و کشتی هم همینطور.. مزیت کلاس اینجا اینه که دیگه نیازی نیست شما ويژگیهای عام رو که در کلاس پدر تعریف شده مثل تعداد سر نشین و سال ساخت رو ذکر کنی فقط کافیه ارث بری کنی .. زمانی که ارث بری رو انجام میدی هر ويژگی ای پدر داشته باشه فرزند هم داره.. حالا این ساده ترین مثال از ارث بری بود که هرچه برنامت بزرگتر بشه این نیازرو بیشتر احساس میکنی.
    ممنون ، منظورتون رو متوجه شدم
    فقط اگر میشه خودتون __init__ و __call__ رو توضیح بدید چون چیزی از اون لینک متوجه نشدم .
    و یه مورد دیگه اینکه من توی بعضی برنامه ها می بینم که کلاس ساخته اند ولی توی کلاس از __init__ و __call__ استفاده نکرده اند . دلیلش چیه ؟ کلاً چه زمانی باید از اینا استفاده کرد

  6. #6
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: ضرورت استفاده از کلاس ؟

    همونطور که توی لینک گفته:
    حالت init وقتی اجرا میشه که شما یک شئ جدید از اون کلاس بسازید یا میخواهید موقع ساخت شی چیزی پاس بدید.
    class foo:    def __init__(self, a, b, c):
    # ...


    x = foo(1, 2, 3) # __init__

    ولی call بعد از اینکه شما object رو ساختید به شکل زیر قابل صدا کردنه:
    class foo:    def __call__(self, a, b, c):
    # ...


    x = foo()
    x(1, 2, 3) # __call__


    بر حسب نیازه قطعا! خیلی جاها شما نیاز دارید در ابتدا یک سری داده به کلاستون بدید و خیلی جاها این نیاز رو ندارید.
    آخرین ویرایش به وسیله n.nowroozi : چهارشنبه 29 بهمن 1393 در 08:13 صبح

  7. #7
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: ضرورت استفاده از کلاس ؟

    ببین فرض کن یه سرور messaging داری که یه شئ از کلاس به اضای هر کانکشن جدید میسازه و شما میخواید به محض اینکه کسی کانکت شد به سرورتون، یه پیغام خوش آمد گویی براش ارسال کنید در چنین مواردی میاید از کلاس init استفاده میکنید و دستوراتی که میخواید به محض ایجاد شئ جدید ایجاد بشه رو توش میزارید که در اینجا میشه ارسال پیغام خوش آمد گویی به کاربر..

    اینها تحت عنوان چیزهایی که توصیه میشه استفاده کنید ولی پایتون ملزم نمیکنه شمارو به استفاده ازش. البته اگه سبک قدیمی استفاده کنید توی ارث بری اندکی پیچیدگی براتون ایجاد میکنه. پس بهتره کلاس رو همیشه به این شکل تعریف کنید:

    class Nima(object):
    pass

  8. #8

    نقل قول: ضرورت استفاده از کلاس ؟

    نقل قول نوشته شده توسط n.nowroozi مشاهده تاپیک
    ببین فرض کن یه سرور messaging داری که یه شئ از کلاس به اضای هر کانکشن جدید میسازه و شما میخواید به محض اینکه کسی کانکت شد به سرورتون، یه پیغام خوش آمد گویی براش ارسال کنید در چنین مواردی میاید از کلاس init استفاده میکنید و دستوراتی که میخواید به محض ایجاد شئ جدید ایجاد بشه رو توش میزارید که در اینجا میشه ارسال پیغام خوش آمد گویی به کاربر..
    خوب مگر نمیشه توی همون کلاس دستورات رو اجرا کنیم ؟ اونا هم به محض ایجاد کلاس اجرا میشن دیگه ؟
    مثلاً اینا چه فرقی دارن ؟

    class Athlete:
    def __init__(self):
    print("salam")


    -------------

    class Athlete:
    print("salam")


  9. #9
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: ضرورت استفاده از کلاس ؟

    نه print حالت دوم فقط و فقط یک بار به هنگام تعریف کلاس اجرا میشود در حالی که حالت اول هربار که شما یک شي از کلاس بسازید اجرا میشود.

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

  1. ضرورت استفاده از Auto Namber
    نوشته شده توسط hamedinho در بخش Access
    پاسخ: 13
    آخرین پست: شنبه 30 آبان 1388, 06:59 صبح
  2. تولید قفل نرم افزاری با استفاده از کلاس های Security
    نوشته شده توسط Amir Taghavi در بخش VB.NET
    پاسخ: 3
    آخرین پست: چهارشنبه 12 بهمن 1384, 22:59 عصر
  3. استفاده از کلاس های ATL در برنامه های MFC
    نوشته شده توسط taze kar در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: چهارشنبه 18 آبان 1384, 12:20 عصر
  4. مشکل در استفاده از کلاس pen
    نوشته شده توسط MF در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 28 تیر 1384, 10:25 صبح
  5. ضرورت استفاده از flock و unlock در ویژوال فاکس و ....
    نوشته شده توسط naderigh در بخش Foxpro
    پاسخ: 1
    آخرین پست: شنبه 09 خرداد 1383, 11:54 صبح

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

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