همه ما میدانیم که پایتون یک زبان dynamic typeه یعنی متغیرهاش درهنگام runtime تایپشون مشخص میشه و راحت عوض میشه.
احتمالا اگه شما هم پایتون نوشته باشین احتمالا تایپ های بعضی متغییر ها با هم قاطی کردین٬ شایدم اشتباهی به یک متغیر جا رشته٬ عدد دادین.
مشکلی نیست٬ در سال 2006 دوتا برنامه نویس اومدن برای پایتون سینتکس جدید اضافه کردن٬ این سینتکس به این صورته که میشه برای متغییر یک راهنما نوشت٬ حتی برای تابع و مقداری که برمیگرداند.
خب بیخیال حرفهای اضاف
نکات مهم:
اگه از VSCode استفاده میکنید حتما افزونه pyright رو نصب کنید تا اگه برخلاف قوانین (بعدن منظورم میفهمین) عمل کردین٬ ادیتوره ارور نشون بده.
لازم به ذکر است اگه برخلاف راهنماهایی که نوشتید عمل کردید٬ هیچ مشکلی توی اجرای برنامه نخواهد بود و این بیشتر یک راهنما هست٬ درکل قرار نیست پایتون استاتیک بشه.
خب بریم مثال بزنیم که این درواقع به چه دردمون میخوره
ساده ترین مثال٬ فرض کنین میخواهین تابع جمع کردن دوتا عدد بنویسین
def add(first, second): return first + second print(add(10, 5)) # 15 print(add("Hello", "World")) # HelloWorld
معلومه که تابع بالا دوتا ورودی میگیره و با هم جمع میکنه٬ ولی یه نکته اینجاست٬ ما برای جمع کردن دوتا عدد استفاده کردیم درحالی که میشه دوتا رشته داد و پایتون مشکلی نخواهد داشت.
حالا میاییم ورودی ها تابع به شکل زیر مینویسیم.
def add(first: int, second: int): return first + second # این خط مشکلی نخواهد داشت print(add(10, 5)) # 15 # ولی در اینجا ادیتور یک زیرخط قرمز میکشد که شما جای عدد٬ رشته دادین print(add("Hello", "World")) # HelloWorld
حالا بریم یک مورد کاربردیتر
فرض کنید یک تابع فیبوناچی میخواهید بنویسید
خب ما توقع داریم یک ورودی عدد بگیریم و یک عدد هم برگردونیم.
در کد زیر یه ایرادی هست٬ گفتیم که یک عدد برمیگردونیم ولی pass نوشتیم یعنی قرار نیست چیزی برگردونده شود٬ پس یک خط قرمز زیر int کشیده میشه
def fib(num: int) -> int: pass
حالا به کد زیر نگاه کنید
# wrong def fib(num: int) -> int: if num < 1: return 1
در کد بالا ما عدد برگردوندیم ولی باز ایراد میگیره چون باز اگه شرط اجرا نشه همچنان چیزی برگردونده نمیشود.
حتما در نوشتن این راهنما ها نکات زیر رو رعایت کنین تا خوانایی کدتون بهتر بشه
# correct my_var: int name: str = "Hello World" value: int = 10 # wrong my_cool_name : int # حتما قبل دونقطه فاصله نزارین my_cool_name_2:int # بعد دو نقطه فاصله بزارین
اینم یه سری مثال های اضاف
def func(a: int = 10, b: str) -> str: pass def sum_items(items: list) -> int: return sum(items)
امیدوارم مفید باشه٬ این اولین نوشته ام هست پس ممکن است توضیحاتم خوب نباشن پس لطفا به بزرگواری خودتون ببخشین D:
احتمالا قسمت دوم بنویسم یا بریم سایر موارد cool پایتون کار کنیم
اگه پیشنهادی یا انتقادی هست حتما بگین.