In backend way
101 subscribers
30 photos
8 videos
8 files
16 links
اینجا هیچ چیز خاصی نمیبینی صرفا دارم آموزش هایی که میبینم رو به زبون خودم واسه خودم داکیومنت میکنم شاید به درد تو هم بخوره
Download Telegram
چرا باید در برنامه نویسی از شی گرایی استفاده کنیم؟
1-شی گرایی کار کردن روی پروژه رو ساده تر میکنه
کپسوله سازی یا encapsulation : یه چیزی تو مایه های همون مجموعه بندی و اینا که یک سری شی های کوچیک رو داخل یک ماهیت بزرگ قرار میدی
مثال: مثل گروه بندی حیوانات مثل پرندگان خزندگان و و و
abstraction= ینی اینکه اون ساختاری که وجود داره رو نشون نده
In backend way
abstraction= ینی اینکه اون ساختاری که وجود داره رو نشون نده
مثلا تو میتونی حالات و رفتار یه انسان رو ببینی که چجوریه ولی نمیتونی داخل مغزش رو ببینی که چه اتفاقی داره میوفته در واقع چیزای داخل مغزش abstract شده
برای تشکیل یک شی یا ماهیت از کلمه کلیدی class استفاده میکنیم.
برای رد شدن از یک شی یا class میتوانیم از دستور pass استفاده کنیم
به خصوصیات هایی که در یک کلاس نوشته میشن میگن attributes
تابع 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 رو فراخوانی کنی یا هرچی اون صرفا از کاربر داده میگیره و داخل کلاس ذخیره میکنه و میتونی داخل بقیه توابع از داده های ذخیره شده استفاده کنی
ما انواع مختلفی از نامگذاری ها رو توی برنامه نویسی شی گرا داریم:
1. name = عادی ترین حالتی که میتونی متغیر تعریف کنی
2. _name=اینطوری نامگزاری کردن باعث میشه که متغیر یه جورایی پرایوت بشه و نمایش داده نشه داخل اینتلیسنس
3. _ _name = این کلا اسم رو عوض میکنه و سخت تر میشه بهش دسترسی داشت
In backend way
به حالت سوم میگن name mangling
ازین حالت بیشتر برای قاطی نشدن اسم ها داخل کلاس های مختلف استفاده میشه
دکوراتور ها(decorators) = به جای گرفتن ورودی یک تابع دیگه‌ای رو به عنوان ورودی میگیره
In backend way
تا اینجایی که من گرفتم یه جور تابع تو در تو اگه اشتباه نکنم
در واقع دکوراتور یه فانکشنیه که یک فانکشن دیگه رو فراخوانی میکنه و به جای ورودی اون فانکشن رو میزاره و حالا یه سری تغییراتی روش انجام میده
def mydecor(func):
def wrapper():
print('before')
func()
print('after')
return wrapper()

@mydecor
def main():
print('salam')

main()
فانکشن __repr__در کلاس : در واقع این فانکشن میاد به جای آدرسی که کد روی حافظه رم ذخیره کرده اون چیزی رو نشون بده که شما براش ست کردی
خب بریم سراغ مبحث وراثت