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) = به جای گرفتن ورودی یک تابع دیگهای رو به عنوان ورودی میگیره
  
  In backend way
دکوراتور ها(decorators) = به جای گرفتن ورودی یک تابع دیگهای رو به عنوان ورودی میگیره
تا اینجایی که من گرفتم یه جور تابع تو در تو اگه اشتباه نکنم
  
  In backend way
تا اینجایی که من گرفتم یه جور تابع تو در تو اگه اشتباه نکنم
در واقع دکوراتور یه فانکشنیه که یک فانکشن دیگه رو فراخوانی میکنه و به جای ورودی اون فانکشن رو میزاره و حالا یه سری تغییراتی روش انجام میده
  def mydecor(func):
def wrapper():
print('before')
func()
print('after')
return wrapper()
@mydecor
def main():
print('salam')
main()
فانکشن __repr__در کلاس : در واقع این فانکشن میاد به جای آدرسی که کد روی حافظه رم ذخیره کرده اون چیزی رو نشون بده که شما براش ست کردی
  وراثت یه همچین حالتیه که ما مثلا یه دونه کلاس داریم که حالا یه سری اطلاعات رو میگیره بعد از این یه کلاس دیگه هم داریم که علاوه بر اطلاعات کلاس اول خودش هم یه سری اطلاعات دیگه داره
  
  In backend way
وراثت یه همچین حالتیه که ما مثلا یه دونه کلاس داریم که حالا یه سری اطلاعات رو میگیره بعد از این یه کلاس دیگه هم داریم که علاوه بر اطلاعات کلاس اول خودش هم یه سری اطلاعات دیگه داره
class person:
def __init__(self , name , family , age):
self.name = name
self.family = family
self.age = age
def showfullname(self):
return f'name = {self.name} ' \
f'family = {self.family}' \
f'age = {self.age}'
def __repr__(self):
return f'name = {self.name} '\
f'family = {self.family}'\
f'age = {self.age}'
class user(person):
pass
me=person('matin' , 'kalamipour' , 19)
you = user('matin' , 'kalamipour' , 19)
class user:
def __init__(self, name , age):
self.name = name
if age>0:
self._age=age
else:
self._age=0
def get_age(self):
return self._age
def set_age(self , valueAge):
if valueAge>=0:
self._age=valueAge
@matrix_py
دکوریتور property : این میاد در واقع کار دوتا فانکشنی که بالا تعریف کردیم رو انجام میده فقط با این تفاوت که دیگه نیازی نیست حتما فانکشن رو فراخوانی کنیم.
@matrix_py
  @matrix_py