جلسه بیست و پنجم
پارامتر توابع
برای افزایش خوانایی و سازماندهی کد، پیشنهاد میشود که کد را در چندین فایل جداگانه نوشته و هنگام نیاز، آنها را به برنامه وارد کنید. این رویکرد به شرح زیر مزایایی دارد:
1. تفکیک کد: با نوشتن کد در چندین فایل مجزا، میتوان کد را به بخشهای مختلف تقسیم کرد. این امر به سازماندهی بهتر کد و افزایش خوانایی آن کمک میکند.
2. مدیریت سادگی کد: با تقسیم کد به فایلهای کوچکتر، هر فایل به تنهایی قابل فهم و مدیریت خواهد بود. این موضوع به ویژه در پروژههای بزرگ و پیچیده مفید است.
3. سهولت در تغییر و نگهداری: در صورت نیاز به تغییر یا بهبود بخشی از کد، میتوان تنها همان بخش را در فایل مربوطه ویرایش کرد، بدون نیاز به دستکاری کل برنامه.
4. امکان استفاده مجدد: با نوشتن کد در فایلهای مجزا، امکان استفاده مجدد از بخشهای مختلف کد در سایر پروژهها نیز وجود خواهد داشت.
تقسیم کد به چندین فایل مجزا میتواند به افزایش خوانایی، سازماندهی بهتر و انعطافپذیری در نگهداری و توسعه کد کمک کند.
توجه کنید : (مطمئن شوید که ماژول شما در همان دایرکتوری برنامه اصلی شما ذخیره شود)
import
برای وارد کردن و استفاده از ماژولهای (modules) و بستههای (packages) خارجی به کار میرود. ماژولها در پایتون معادل فایلهایی هستند که کد پایتون را در خود نگه میدارند.
دستور import
به چند شکل مختلف استفاده میشود:
1. **Import ماژول کامل**:
1 2 3 |
<xmp>import module_name</xmp> |
این دستور کل ماژول را وارد کرده و شما میتوانید از تمام توابع و متغیرهای آن استفاده کنید. برای استفاده از یک عنصر از ماژول باید به صورت module_name.element
آن را فراخوانی کنید.
2. **Import بخشهای خاصی از ماژول**:
1 2 3 |
<xmp>from module_name import element1, element2, ...</xmp> |
با این دستور میتوانید تنها برخی از عناصر (توابع، متغیرها، …) ماژول را وارد کنید. پس از آن میتوانید از این عناصر بدون نیاز به پیشوند module_name.
استفاده کنید.
3. **Import ماژول با نام دیگر**:
1 2 3 |
<xmp>import module_name as alias</xmp> |
در این حالت شما میتوانید به جای نام اصلی ماژول، از یک نام دلخواه (alias) برای استفاده از آن ماژول استفاده کنید.
4. **Import بخشهای خاص با نام دیگر**:
1 2 3 |
<xmp>from module_name import element as new_name</xmp> |
این قالب به شما امکان میدهد که عناصر خاصی از ماژول را با نام دلخواه وارد کنید.
استفاده از دستور import
به شما کمک میکند تا از قابلیتها و امکانات ماژولها و بستههای مختلف پایتون استفاده کنید و کد خود را سازماندهی و توسعه دهید.
مثال 1: تابع ساخت پیتزا .
1 2 3 4 5 6 7 8 |
<xmp>def make_pizza(size, *toppings): """Make a pizza.""" print("nMaking a " + size + " pizza.") print("Toppings:") for topping in toppings: print("- " + topping)</xmp> |
و در مسیر همین فایل یک فایل دیگر ایجاد کرده.
مثال 2: استفاده از دستور import
1 2 3 4 5 6 |
<xmp>import pizza pizza.make_pizza('medium', 'pepperoni') pizza.make_pizza('small', 'bacon', 'pineapple') #فایل رو به برنامه اضافه میکنه </xmp> |
مثال 3: اضافه کردن تابع خاصی به برنامه.
1 2 3 4 5 6 |
<xmp>from pizza import make_pizza make_pizza('medium', 'pepperoni') make_pizza('small', 'bacon', 'pineapple') #فقط تابع گفته شده به برنامه اضافه میشود </xmp> |
مثال 4: اضافه کردن ماژول با نام دلخواه.
1 2 3 4 5 |
<xmp>import pizza as p p.make_pizza('medium', 'pepperoni') p.make_pizza('small', 'bacon', 'pineapple')</xmp> |
مثال 5: اضافه کردن تابع خاصی با نام دلخواه
1 2 3 4 5 |
<xmp>from pizza import make_pizza as mp mp('medium', 'pepperoni') mp('small', 'bacon', 'pineapple')</xmp> |
مثال 6: اضافه کردن تمام مازول به برنامه.
1 2 3 4 5 |
<xmp>from pizza import * make_pizza('medium', 'pepperoni') make_pizza('small', 'bacon', 'pineapple')</xmp> |
کلاس ها
کلاس ها پایه و اساس برنامه نویسی شی گرا هستند. کلاسها چیزهای دنیای واقعی را نشان میدهند که میخواهید در برنامههای خود مدل کنید: برای مثال سگها، ماشینها و روباتها. شما از یک کلاس برای ساختن اشیا استفاده می کنید که نمونه های خاصی از سگ ها، ماشین ها و روبات ها هستند. یک کلاس رفتار کلی را که یک دسته کامل از اشیاء می تواند داشته باشد و اطلاعاتی که می تواند با آن اشیا مرتبط شود را تعریف می کند. کلاس ها می توانند از یکدیگر ارث ببرند می توانید کلاسی بنویسید که عملکرد یک کلاس موجود را گسترش دهد. این به شما امکان می دهد برای موقعیت های مختلف به طور موثر کدنویسی کنید.
در نظر بگیرید که چگونه می توانیم یک ماشین را مدل کنیم. چه اطلاعاتی را با یک خودرو مرتبط می کنیم و چه رفتاری خواهد داشت؟ اطلاعات در متغیرهایی به نام ویژگی ها ذخیره می شود و رفتار با توابع نشان داده می شود. توابعی که بخشی از یک کلاس هستند متد نامیده می شوند.
در پایتون، کلاس (Class) یک ساختار برنامهنویسی است که به شما امکان تعریف انواع جدید دادهها را میدهد. کلاسها ابزاری برای ایجاد و مدیریت اشیاء (Objects) هستند.
ساختار تعریف یک کلاس در پایتون به شکل زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<xmp>class ClassName: # class attribute attribute = value def __init__(self, param1, param2, ...): # instance attributes self.param1 = param1 self.param2 = param2 # other methods def method1(self, arg1, arg2, ...): # method code pass def method2(self, arg1, arg2, ...): # method code pass</xmp> |
در این ساختار:
– ClassName
: نام کلاس که با حرف بزرگ شروع میشود.
– attribute
: یک ویژگی یا متغیر که در سطح کلاس قرار دارد.
– __init__
: سازنده (constructor) کلاس که هنگام ایجاد یک شیء از کلاس فراخوانی میشود.
– self
: پارامتر ویژه که به شیء فعلی (instance) اشاره میکند.
– method1
, method2
: متدهایی که رفتار شیء را تعریف میکنند.
برای ایجاد یک شیء از کلاس، از دستور زیر استفاده میشود:
1 2 3 |
<xmp>obj = ClassName(arg1, arg2, ...)</xmp> |
سپس میتوان از متدها و ویژگیهای آن شیء استفاده کرد:
1 2 3 4 |
<xmp>obj.method1(arg1, arg2) print(obj.attribute)</xmp> |
کلاس های والد یک مفهوم کلی هستند و هرچه به سمت پایین میرویم (فرزندان) به واقعیت نزدیکتر و دارا یجزئیات بیشتری اند.
مدل کردن یعنی تبدیل دنیای واقعی به برنامه
تابع سازنده : وقتی شی از کلاس ایجاد شود تابع سازنده فراخوانی شده و وظیفه مقدار دهی عناصر کلاس را برعهده دارد.
کلاسها در پایتون امکان ایجاد انواع جدید داده، تعریف متدها و ویژگیها، و همچنین ارثبری (inheritance) را فراهم میکنند. این قابلیتها به شما امکان ساخت برنامههای شیگرا و سازمانیافتهتر را میدهد.