توضیحاتی درباره روش ایجاد کتابخانه و استفاده از اون در برنامههاتون
* کتابخونه اصلا چی هست؟
همونایی که import شون میکنیم. مثل turtle, random و ... هرکی میتونه یه کتابخونهی جدید بسازه و به پایتون اضافه کنه! خیلی از برنامه نویسای حرفهای کتابخونههای حرفهای میسازن و اونو توی اینترنت میگذارن تا بقیه هم بتونن از اونا استفاده کنند.
* کتابخونه به چه دردی میخوره؟
فکر کنید turtle.circle وجودد نداشت. چطوری باید دایره میکشیدیم؟ هر بار که میخواستیم دایره بکشیم، باید این حلقه را مینوشتیم:
for i in range (...):
turtle.forward(...)
turtle.left(...)
تازه ... ها رو هم هر دفعه باید محاسبه میکردیم تا دایره مون اندازهای که میخواهیم بشه! ولی یک بار یک نفر اومده و این کارو با محاسباتش برای همیشه برامون انجام داده. و با اسم circle گذاشته توی کتابخونهی turtle.
حالا فکرشو بکنید اگر بقیه کدهایی که تکرار میکنیم هم مثل turtle.circle توی یک کتابخونه داشته باشیم.
مثلا یک کتابخونه ریاضی حرفه ای که تابع فاکتوریل و فیبوناچی و ... را داشته باشد. یا یک کتابخونه که input ش طرح و رنگ خاص خودشو داشته باشد و اگر کاربر بجای عدد چیز دیگه ای نوشت، پیغام مناسب بده و دوباره از کاربر عدد بگیره
و کلا هر ایده خلاقانه ای که شما داشته باشید.
* چطوری کتابخونه بسازیم؟
یک فایل پایتون ایجاد میکنیم، توش دستوراتمون رو به صورت def مینویسیم و میگذاریمش توی پوشهی Lib که در محل نصب پایتون قرارا داره. مثلا اگر پایتون در c:\python27 نصب شده، توی اون یک پوشهی Lib هست. کافیه متن زیرو توی اون پوشه به ذخیره کنید. هر اسمی خواستید روی فایل بگذارید ولی اسمشو یادتو بمونه که بعدا کارش داریم. پسوندش هم مثل همه فایل های پایتون باید py باشه. من اسمشو میگذارم riazi.py
def factorial(n):
f = 1
for i in range(2, n):
f = f * i
return f
* چطوری ازش استفاده کنیم؟
این ساده ترین قسمت کاره: همون طوری که از turtle و random استفاده میکنیم. مثلا
import riazi
x = riazi.factorial(5)
که در اینجا riazi اسم فایل کتابخونمونه که توی پوشهی Lib ساختیم.
تذکر 1: حواستون باشه اگر خواستید کد برنامه را بیارید مدرسه یا ببرید جای دیگه، حتما فایل کتابخونه رو هم همراهتون داشته باشید.
تذکر 2: توجه داشته باشید که متغیرهای فایل کتابخونه با متغیرهای فایل اصلی یکی نیستند. مثلا اگر توی کتابخونه بنویسیم pi = 3.14 و توی فایل اصلی بنویسیم print(pi) برنامه اصلی خطا خواهد داد. پس اگر خواستیم عدد پی رو توی کتابخونه ذخیره کنیم راهش استفاده از def است:
def pi():
return 3.14
و توی برنامههامونم باید بنویسید:
print(riazi.pi())
نکته: این مطلب یک import ساده بود و import به اینجا ختم نمیشود.
یک کتابخونهی آزمایشی و یک نمونه از کاربردش هم مینویسم. چه نکته یا نکتههای جدیدی میتونید توی این مثال کشف کنید؟
فایل کتابخونهی naghsh.py :
import turtle
def star(n=100):
for i in range(6):
turtle.forward(n)
turtle.right(144)
turtle.left(144)
فایل برنامهی اصلی:
import naghsh
naghsh.star(50)
naghsh.star()