کتابخانه در پایتون

کتابخانه در پایتون

در این بخش میخواهیم ببینیم کتابخانه در پایتون چیست؟ چه کاربردی دارند و چگونه ساخته میشوند؟ در بخش قبل با ماژول ها آشنا شدیم و فهمیدیم میتوانیم برنامه ها را در فایل های مختلف بنویسیم و در صورت نیاز آن ها را import کنیم. کتابخانه ها دقیقا همین فایل ها هستند که به صورت کاملی آماده شده اند تا از آن ها استفاده کنیم. زبان پایتون این اجازه را به ما میدهد تا کد های درون کتابخانه ها را ببینیم ولی وقتی داریم از یک کتابخانه استاندارد استفاده میکنیم اصلا نیازی نداریم که بدانیم در دل این فایل ها چه میگذرد. کافیست طبق دستور العمل آن کتابخانه پیش برویم.

به عنوان مثال کتابخانه random را در نظر بگیرید. این کتابخانه به صورت پیش فرض روی پایتون نصب بوده و کافیست آن را import کنیم. در این کتابخانه یک سری تابع وجود دارد که کمک میکند تا اعداد تصادفی تولید کنیم. میخواهیم لیست توابع داخلی آن را ببینیم، برای این کار از دستور dir() استفاده میکنیم:

 import random
print(dir(random))
# ['BPF', 'LOG4', 'NV_MAGICCONST',
# 'RECIP_BPF', 'Random', 'SG_MAGICCONST',
# 'SystemRandom', 'TWOPI', '_Sequence',
# '_Set', '__all__', '__builtins__',
# '__cached__', '__doc__', '__file__',
# '__loader__', '__name__', '__package__',
# '__spec__', '_accumulate', '_acos',
# '_bisect', '_ceil', '_cos', '_e', '_exp',
# '_inst', '_log', '_os', '_pi', '_random',
# '_repeat', '_sha512', '_sin', '_sqrt',
# '_test', '_test_generator', '_urandom',
# '_warn', 'betavariate', 'choice', 'choices',
# 'expovariate', 'gammavariate', 'gauss', 'getrandbits',
# 'getstate', 'lognormvariate', 'normalvariate',
# 'paretovariate', 'randint', 'random', 'randrange',
# 'sample', 'seed', 'setstate', 'shuffle',
# 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

هر کدام از این توابع کار خاصی را انجام میدهند ولی نیازی نیست همه آن ها را بلد باشیم. کافیست با تعداد محدودی از آن ها آشنا باشیم یا اینکه بتوانیم از Documentation آن استفاده کنیم. برای مثال درمورد کتابخانه random کافیست بدانیم که تابع randint یک عدد صحیح تصادفی تولید میکند، تابع randrange در یک بازه عددی یک عدد تصادفی انتخاب میکند یا تابع choice بین چند گزینه موجود، یکی را انتخاب میکند.

در این بین توابعی وجود دارد که دو underline قبل، و دو underline بعد از نام تابع دارند. مانند __name__. این توابع یک سری اطلاعات درمورد کتابخانه در بر دارد مانند نام، طریقه استفاده و ورژن کتابخانه. در صورتی که یک کتابخانه استاندارد باشد، تابع __doc__ دستورالعمل استفاده از آن را بیان میکند.

import random

print(random.__name__)
#random
print(random.__doc__)
# Random variable generators.
# 
#     integers
#     --------
#            uniform within range
# 
#     sequences
#     ---------
#            pick random element
#            pick random sample
#            pick weighted random sample
#            generate random permutation
# 
#     distributions on the real line:
#     ------------------------------
#            uniform
#            triangular
#            normal (Gaussian)
#            lognormal
#            negative exponential
#            gamma
#            beta
#            pareto
#            Weibull
# 
#     distributions on the circle (angles 0 to 2pi)
#     ---------------------------------------------
#            circular uniform
#            von Mises
# 
# General notes on the underlying Mersenne Twister core generator:
# 
# * The period is 2**19937-1.
# * It is one of the most extensively tested generators in existence.
# * The random() method is implemented in C, executes in a single Python step,
#   and is, therefore, threadsafe.

میتوانیم __doc__ را روی تابع مشخصی از کتابخانه صدا کنیم، برای مثال میخواهیم بدانیم تابع randint چگونه کار میکند:

import random

print(random.randint.__doc__)
# Return random integer in range [a, b], including both end points.

همانطور که نوشته شده، این تابع دو عدد صحیح را گرفته و یک عدد صحیح تصادفی را از بین آن دو انتخاب میکند. به یاد داشته باشیم که هر دو عدد وارد شده را نیز شامل میشود.

مورد بعد تابع __file__ میباشد که مسیر فایل کتابخانه را بر میگرداند.

import random

print(random.__file__)
# C:\Users\...\AppData\Local\Programs\Python\Python38-32\lib\random.py

اگر به این آدرس برویم تمام کتابخانه های پیشفرض پایتون را میتوانیم ببینیم.

به عنوان تمرین، وارد این مسیر شوید و سعی کنید کد های داخلی این کتابخانه ها را بخوانید.

 

 

علی ارجمندی

ایشان از جمله برترین مدرسین برنامه نویسی می‌باشند و با تجربه ای که در حوزه های پایتون، پردازش تصویر، هوش مصنوعی، میکروکنترلر ها و کنترل سنسور ها دارند در حال حاضر مسئول پروژه های داخلی و بین المللی مجموعه فرکیان‌تک می‌باشند.

مطالب مرتبط

دیدگاهها

نظر: