#  آموزش متدهای جادویی در پایتون

پایتون به صورت پیشفرض یکسری متد در اختیار شما قرار داده که هرکدام وظیفه انجام کاری رو دارند. شکل نامگذاری این متدها به شکل __<name>__ است، دو underscore قبل و دو underscore بعد از نام متد قرار میگیرد. این متدها رزرو شده توسط پایتون هستند که بر رفتار سطح بالای یک شی تأثیر می‌گذارند. این متدها با نامهای جادویی، خاص یا داندر(dunder) شناخته میشوند.

 

__init__ نمونه ای از یک متد خاص است که در زمان ایجاد شدن یک آبجکت از یک کلاس فراخوانی میشود. یا مثلا زمانی که بخواهید با عملگر + دو آبجکت را با هم جمع کنید،‌ میتوانید از متد __add__ استفاده کنید. یادگیری استفاده از متدهای خاص ما را قادر می سازد تا کلاس های ظریف و قدرتمندی از اشیاء را طراحی کنیم.

 

 

 +  متد __init__ پایتون

متد __init__ یکی از پرکاربردترین متدهای خاصی است که در پایتون وجود دارد. متد __init__ به شما اجازه میدهد در زمان ساخت آبجکت، مستقیما آرگومان‌ها را به کلاس‌ ارسال کنید:

class Car:
	def __init__(self, name):
		self.name = name


a = Car('benz')
print(a.name)

# OUTPUT

benz

 

 

 +  متد __str__ پایتون

متد __str__ پایتون زمانی استفاده میشود که بخواهید یک آبجکت را مستقیما در دستور print چاپ کنید. مثلا در کد زیر یک کلاس به نام Car داریم و یک آبجکت از آن به نام a ساخته‌ایم. اما زمانی که آبجکت a را ساختیم نتیجه‌ای که به نشان میدهد، آنچنان مفید نیست:

class Car:
	def __init__(self, name):
		self.name = name


a = Car('benz')
print(a)

# OUTPUT
<__main__.Car object at 0x7fdbf01d9fd0>

 

اما با متد __str__ میتوانیم از رفتار را تغییر بدهیم:

class Car:
	def __init__(self, name):
		self.name = name

	def __str__(self):
		return self.name

a = Car('benz')
print(a)

# OUTPUT
benz

همانطور که در کد بالا میبینید، زمانی که آبجکت را چاپ کردیم، متد __str__ فعال شده و نتیجه را به ما نشان میدهد.

 

 

 +  متدهای خاص دیگر پایتون

برای آشنایی بیشتر با متدهای خاص پایتون، در زیر لیست کاملی از این متدها را آورده‌ایم:

ویدیو آموزش متد__reversed__ پایتون

ویدیو آموزش متدهای __getattr__, __setattr__, __delattr__ در پایتون

ویدیو آموزش متدهای __getitem__, __setitem__, __delitem__ در پایتون

ویدیو آموزش __slots__ در پایتون

ویدیو آموزش متد __contains__ در پایتون

ویدیو آموزش متد __next__ , __iter__ در پایتون

ویدیو آموزش متدهای __lt__ و __le__ و __eq__ و __ne__ و __gt__ و __ge__ در پایتون

ویدیو آموزش متد __call__ در پایتون

ویدیو متد __new__ در پایتون

ویدیو توضیح __all__ در پایتون

ویدیو آموزش متد __name__ در پایتون

ویدیو آموزش متد __repr__ در پایتون

 



0

Intro

10:38

رایگان

1

Variable

12:30

رایگان

2

String

19:22

رایگان

3

List

8:46

رایگان

4

While

9:6

رایگان

5

If

8:37

رایگان

6

For

6:12

رایگان

7

range

4:17

رایگان

8

break, continue, pass

9:15

رایگان

9

Function

12:32

رایگان

10

List methods

12:11

رایگان

11

Tuple

8:29

رایگان

12

Set

7:47

رایگان

13

Dictionary

9:19

رایگان

14

Module

10:40

رایگان

15

fstring

5:35

رایگان

16

format

7:34

رایگان

17

File

17:14

رایگان

18

Scope

6:25

رایگان

19

OOP

12:15

رایگان

20

Method

20:19

رایگان

21

class/instance variable

14:7

رایگان

22

class/static method

13:25

رایگان

23

Inheritance

17:6

رایگان

24

Special methods

9:50

رایگان

25

Access points

11:12

رایگان

26

property

6:54

رایگان

27

Exceptions

21:17

رایگان

28

Standard library

12:51

رایگان

29

Docstring

10:49

رایگان

30

Virtualenv

11:2

رایگان

دوره های پیشنهادی

دوره آموزش ساخت Forum با فلسک
دوره آموزش ساخت Forum با فلسک
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش لینوکس(linux)
دوره آموزش لینوکس(linux)
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش ردیس(redis)
دوره آموزش ردیس(redis)
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


sajede

6 ماه قبل پاسخ به نظر

توضیح متد __main__ رو ندارید توسایت؟

ارسال نظر



امیرحسین بیگدلو

6 ماه قبل

https://www.mongard.ir/one_part/17/if-name-main/

Alireza

1 سال قبل پاسخ به نظر

خسته نباشید استاد عالی بود

ارسال نظر



Hexmin

2 سال قبل پاسخ به نظر

عالی مینوازی ازین بهتر نمیشد توضیح داد

ارسال نظر



sahar

2 سال قبل پاسخ به نظر

وراثت عالییی توضیح دادین خسته نباشین

ارسال نظر



مونگارد