یه کلاسی هست به نام __name که مربوط میشه به ماژول ها و اگه شما پرینت اون رو بگیری دو حالت داره:
1-اگه داخل یک فایل name همون فایل رو پرینت بگیری برات main چاپ میکنه
2-اگه داخل فایلی که هستی name__ یه فایل دیگه رو بخوای پرینت بگیری اسم فایل اون رو برات چاپ میکنه
1-اگه داخل یک فایل name همون فایل رو پرینت بگیری برات main چاپ میکنه
2-اگه داخل فایلی که هستی name__ یه فایل دیگه رو بخوای پرینت بگیری اسم فایل اون رو برات چاپ میکنه
خب خب خب
اینجا مقدماتی تموم شد و داریم میریم واسه بخش متوسط
دهنت قراره پاره شه(اجباری)
اینجا مقدماتی تموم شد و داریم میریم واسه بخش متوسط
دهنت قراره پاره شه(اجباری)
برنامه نویسی شی گرا یا OOP(Object Oriented Programming) به چه معنایی هستش؟
در حدی که تو بتونی این موضوع رو درک کنی میشه اینطور گفت که پیاده سازی ماهیت یک چیز در برنامه نویسی مثل تعریف کردن چیزی مثل user که یه شی در نظر گرفته بشه و چیکارا بتونه بکنه و اینطور چیزی
در حدی که تو بتونی این موضوع رو درک کنی میشه اینطور گفت که پیاده سازی ماهیت یک چیز در برنامه نویسی مثل تعریف کردن چیزی مثل user که یه شی در نظر گرفته بشه و چیکارا بتونه بکنه و اینطور چیزی
دو مفهوم object , class با هم رابطه دو طرفه دارن و هر کدوم که نباشن یه جای کار میلنگه
چرا باید در برنامه نویسی از شی گرایی استفاده کنیم؟
1-شی گرایی کار کردن روی پروژه رو ساده تر میکنه
1-شی گرایی کار کردن روی پروژه رو ساده تر میکنه
کپسوله سازی یا encapsulation : یه چیزی تو مایه های همون مجموعه بندی و اینا که یک سری شی های کوچیک رو داخل یک ماهیت بزرگ قرار میدی
مثال: مثل گروه بندی حیوانات مثل پرندگان خزندگان و و و
مثال: مثل گروه بندی حیوانات مثل پرندگان خزندگان و و و
In backend way
abstraction= ینی اینکه اون ساختاری که وجود داره رو نشون نده
مثلا تو میتونی حالات و رفتار یه انسان رو ببینی که چجوریه ولی نمیتونی داخل مغزش رو ببینی که چه اتفاقی داره میوفته در واقع چیزای داخل مغزش abstract شده
تابع init یا به اصطلاح تابع سازنده این قابلیت رو به کاربر میده که با کلاسی که داریم یک شی جدید بسازه
class user:
def __init__(self,name):
return print(f'salam esme man {name} hast.')
x=user('matin') # result => salam esme man matin hast.
In backend way
Photo
اینطوری هم میتونی ازش استفاده کنی
در واقع بیرون از کلاس هیچ نیازی نیست که تابع init رو فراخوانی کنی یا هرچی اون صرفا از کاربر داده میگیره و داخل کلاس ذخیره میکنه و میتونی داخل بقیه توابع از داده های ذخیره شده استفاده کنی
در واقع بیرون از کلاس هیچ نیازی نیست که تابع init رو فراخوانی کنی یا هرچی اون صرفا از کاربر داده میگیره و داخل کلاس ذخیره میکنه و میتونی داخل بقیه توابع از داده های ذخیره شده استفاده کنی
ما انواع مختلفی از نامگذاری ها رو توی برنامه نویسی شی گرا داریم:
1. name = عادی ترین حالتی که میتونی متغیر تعریف کنی
2. _name=اینطوری نامگزاری کردن باعث میشه که متغیر یه جورایی پرایوت بشه و نمایش داده نشه داخل اینتلیسنس
3. _ _name = این کلا اسم رو عوض میکنه و سخت تر میشه بهش دسترسی داشت
1. name = عادی ترین حالتی که میتونی متغیر تعریف کنی
2. _name=اینطوری نامگزاری کردن باعث میشه که متغیر یه جورایی پرایوت بشه و نمایش داده نشه داخل اینتلیسنس
3. _ _name = این کلا اسم رو عوض میکنه و سخت تر میشه بهش دسترسی داشت
In backend way
ما انواع مختلفی از نامگذاری ها رو توی برنامه نویسی شی گرا داریم: 1. name = عادی ترین حالتی که میتونی متغیر تعریف کنی 2. _name=اینطوری نامگزاری کردن باعث میشه که متغیر یه جورایی پرایوت بشه و نمایش داده نشه داخل اینتلیسنس 3. _ _name = این کلا اسم رو عوض میکنه…
به حالت سوم میگن name mangling
In backend way
به حالت سوم میگن name mangling
ازین حالت بیشتر برای قاطی نشدن اسم ها داخل کلاس های مختلف استفاده میشه
دکوراتور ها(decorators) = به جای گرفتن ورودی یک تابع دیگهای رو به عنوان ورودی میگیره