[TehPUG] about " self " ...
Mehdy Khoshnoody
mehdy.khoshnoody at gmail.com
Sat Jun 20 08:17:18 CEST 2015
*دوستان لطفا بحث رو تو یه تاپیک دیگه ادامه بدید! *
*چرا در ادامهی این ترد یه بحث دیگه میکنید؟!*
*لطفا یه ایمیل جدید با موضوع مربوط به سوال سوال رو بپرسید!!!*
با تشکر
On Sat, Jun 20, 2015 at 9:56 AM maliheh shajary via TehPUG <
tehpug at python.org> wrote:
> ممنون از جوابتون
> میشه بیشتر توضیح بدید
> و اینکه چطور میتونم با IIS سایتم رو بالا بیارم ؟
>
>
>
> On Friday, 19 June 2015, 22:14, Mohsen Javid <moshen212 at gmail.com>
> wrote:
>
>
> سلام
>
> جنگو publish نداره خود کد رو منتقل میکنید به سرور و اونجا سرور رو کانفیگ
> میکنید
>
> 2015-06-20 9:27 GMT+04:30 maliheh shajary via TehPUG <tehpug at python.org>:
>
> سلام
>
> کسی میدونه که چطور میشه publish اپلیکیشن جنگو رو درست کرد
> مثل دات نت که داخل ویژوال استادیو این گزینه رو داره
>
> با تشکر
>
>
>
> On Friday, 19 June 2015, 10:41, Pouria Jahandideh <pjsofts at gmail.com>
> wrote:
>
>
> من فکر می کنم بهتر باشه مباحث شی گرایی رو یاد بگیرید. که مستقل از پایتون و
> هر زبان دیگری هست.
>
> https://www.google.com/search?q=object+oriented+concepts+in+python&gws_rd=ssl
>
> 2015-06-19 10:58 GMT+04:30 Peyman Karimi <peykar at gmail.com>:
>
> سلام،
> فکر میکنم دلیل اینکه با فهم چیستی self مشکل دارید، اینه که با انواع متدها
> در پایتون آشنایی ندارید. در پایتون، سه نوع متد وجود داره.متد آبجکت یا
> object method، متد کلاس یا class method، و متد ایستا یا static method که
> هر سه اینها درون کلاس تعریف میشن اما کاربرد و رسالت متفاوتی دارند. من شرح
> رسالت هر کدوم رو خیلی ساده و مختصر میگم، که البته نیازمند این هست که با
> معانی فنی کلماتی مثل «نمونه» و «کلاس» آشنا باشید و بین این کلمات بتونید
> تمیز بدید.
>
> ۱. متد آبجکت: همونی هست که شما درباره اون سوال داری و اولین پارامتری که
> بهش ارسال میشه «شیء» یا همون «نمونه»ای ایجاد شده از کلاس هست. برطبق «عرف»
> (هرجا کانونشن: convention در علوم رایانه دیدی، یعنی بهتره رعایتش کنی، اما
> مجبور نیستی) اسمش self هست. وقتی ما نیاز داریم درون متدی که مینویسیم از
> دادههای مربوط به شیء استفاده کنه، از این نوع متد استفاده میکنیم. مثل همون
> مثالی که آقای خشنودی زدن و از مقدارِ property نام فرد استفاده کردن که مختصِ
> اون نمونهی خاص هست.
>
> ۲. متد کلاس: اگر بخواهیم یک عملکرد برای کلاسمون تعریف کنیم که نیازی به
> دادههای یک نمونه خاص از اون کلاس نداره، اما به دادههای تعریف شده در خود
> کلاس نیاز داره، از کلاس متد استفاده میکنیم. در این مواقع بصورت «عرف» از
> لفظ cls برای فرستادن کلاس به درون متد استفاده میشه، یعنی تعریفی که داریم
> چیزی شبیه به این هست هست:
> class A(object):
> FOO = 'foo'
> @classmethod
> def a_class_method(cls, bar):
> print cls.FOO
> ...
>
> ۳. نوع سوم هم استتیک متد یا متد ایستا هست. در این مواقع در حقیقت ما یک
> تابع داریم، که فقط چون وابسته به یک کلاس خاص هستد و با کاری رو در رابطه با
> اون انجام میده، اما هیچنیازی به دادههای کلاس یا آبجکت نداره، بهش متد
> استاتیک میگن. تنها فرقش با تابع معمولی اینه که درون کلاس تعریف شده. چیزی
> شبیه به این:
> class A(object):
> @staticmethod
> def a_class_method(foor, bar):
> print "Hi!"
> ...
>
> امیدوارم کمکی کرده باشم.
>
>
>
>
>
>
> 2015-06-18 12:05 GMT+04:30 Vahid Maani <vahidmaani at gmail.com>:
>
> مهدی خوب توضیح داد چندتا نکته رو هم اضافه کنم، self اسم اولین آرگومان
> متدها هست و هیچ لزومی نداره حتماً از این اسم استفاده کنی ولی استفاده از
> self یه قانون نانوشتهی خیلی قوی هست که خوانایی کدت بالا بره یعنی میتونی
> از کلمات this و هر اسم دلخواه استفاده کنی.
> دوّم اینکه این self به خود ابجکت/نمونه اشاره داره.
> (چیزهای زیادی نوشتم ولی به نظرم اومد که با نوشتن نمیشه کامل و شفاف
> توضیح داد و احتمال اینکه گیجترت کنه هست. به نظرم توی این مورد هم طرح
> منتورشیپ مهدی بهتر جواب میده :) )
>
> On 06/18/2015 03:33 AM, Mehdy Khoshnoody wrote:
>
> سلام
>
> شما فرض کن یه کلاس داری به اسم User:
>
> class User(object):
> def __init__(self, name):
> self.name = name
> def say_hi(self):
> print("hey, {}!!".format(self.name))
>
> خوب شما الان میتونی از این کلاس نمونه بسازی.
> first_user = User(name="Abbas")
> اتفاقی که تو کد بالا میوفته اینه که متد __init__ کلاس یوزر صدا زده میشه و
> آرگومانهاش name="abbas" و self=first_user هست.
> توی متد ما خاصیت name رو به self(first_user) اضافه کردیم و اونو برابر با
> مقدار name قرار دادیم.
>
> در نتیجه شما الان first_user تون یه خاصیت به اسم name داره که میتونید
> ازش استفاده کنید.
> print("hello, {}".format(first_user.name))
> حالا شما فرض کن تو کلاس User یه متد بنویسی که همهی نمونههایی که از این
> کلاس ساخته میشن این متد رو داشته باشن.
> مثلا متد say_hello! میخوایم وقتی متد رو صدا زدیم به یوزر سلام کنه. خوب ما
> که نمیدونیم الان کدوم نمونه از User این متد رو صدا زده (first_user,
> second_user ,...). در نتیجه اینجا مفهوم self کاملا ملموسه! بهش میگیم مهم
> نیست کدوم نمونه بود، همهی نمونهها name دارند. تو از name خوده(self) نمونه
> استفاده کن.
> وقتی کد زیر اجرا میشه
> first_user.say_hi()
> در واقع این اتفاق میوفته
> User.say_hi(self=first_user)
> پس وقتی این متد اجرا میشه self، که خود نمونهی فعلی باشه برابر با
> first_user هست و مقدار همهی خواصی که در متد استفاده شده مربوط به
> first_user خواهد بود.
>
> و در یه جمله «self هرجای کلاس برابر نمونهی فعلی است»
>
> On Thu, Jun 18, 2015 at 1:21 AM Abbas Aghasy <hlmaz8080 at gmail.com> wrote:
>
> سلام به همه ی دوستان !
> میشه به من بگید کار self چیه ؟! کسی میتونه به طور کلی توضیح بده ؟! ممنون
> میشم اگه طوری بگید که من هم متوجه بشم چون من 3 ماهه که با پایتون کار میکنم
> ! خسته نباشد ! برای توضیح بیشتر این ویدیو رو هم نگاه کنید !
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
>
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
>
> --
> وحید معانی
> Vahid MaaniVahid.Maani at gmail.comVahid.Maani@protonmail.comhttp://www.gnutips.ir | https://github.com/vahit
>
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
>
>
>
> --
> Peyman Karimi
> Cell: +98 912 367 6406
> ↪ http://about.me/peyman.karimi
>
> Listen to the mustn'ts, child. Listen to the don'ts.
> Listen to the shouldn'ts, the impossibles, the won'ts.
> Listen to the never haves, then listen close to me...
> Anything can happen, child. Anything can be...
> - Shel Silverstein
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
>
>
>
> --
> PJ
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
>
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
>
>
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tehpug/attachments/20150620/2121d03f/attachment.html>
More information about the TehPUG
mailing list