برای فهمیدن مفهوم کلاس ها اول باید مفهوم شئ هارا درک کنیم
در python همه چیز از اعداد تا متغیر ها و ... همه هرکدام شئ محسوب میشوند به عنوان مثال، اگر در محیط برنامهنویسی شما یک برنامه بنویسید که اشیاء "ماشین" را مدل کند، هر ماشین میتواند ویژگیهایی مانند سرعت، رنگ، مدل، وضعیت فعلی (روشن یا خاموش) و عملکردهایی مانند روشن کردن، خاموش کردن و تغییر سرعت را داشته باشد. این ویژگیها و عملکردها میتوانند به عنوان خصوصیات و روشهایی که هر ماشین در برنامه شما دارد، تعریف شوند.به طور کلی، اشیاء در برنامهنویسی به شما کمک میکنند تا مدلهای واقعی را با استفاده از ویژگیها و رفتارهای آنها ایجاد کنید و با آنها تعامل داشته باشید.
یک شئ شامل داده (متغیر ها که خصوصیات نامیده میشوند),و کد (توابع یا همان متد ها)
برای مثال اشیا مانند ساندویچ ها انواع مختلفی دارند ,بندری,همبرگر و ... و همگی ویژگی های مشترکی از جمله نان و ... دارند.
شکل اصلی نوشتن یک کلاس ابتدا کلمه کلیدی classرا نوشته و بعد اسم کلاس خود را میگذاریم و بعد با : نوشتن کلاس را شروع میکنیم
مثل بقیه دستورات در پایتون فرورفتگی خط بعدی بعد از : مهم است (ترجیحا 3 space)
در بدنه کلاس هم نام متغیر را مانند تغییر متغیر ها در پایتون مینویسیم
حالا اگر در یکی از متد ها خواستیم متغیر اضافه کنیم از selfکمک میگیریم
مانند همان تابع در پایتون است و از def استفاده میکنیم و در صورت نیاز پارامتر ورودی برای ان مشخص میکنیم
برای اینکه در متد ها به ویژگی شئ دسترسی داشته باشیم ازselfاستفاده میکنیم ومانند همان شئ رفتار میکند و ما در متد ها میتوانیم با استفاده از self متغیر جدید تولید کنیم
وقتی بخواهیم یک متد در پایتون ایجاد کنیم باید از یک سازنده استفاده کنیم که خودش یک متد است اگر برای یک کلاس متد سازنده تعریف نکنیم مشکلی ندارد اما برای ساخت اولیه کلاس استفاده کردن از متد سازنده اولیه__init__بهتر است در این متد برای استفاده از متغیر هایی است که میخواهیم بعدا در بدنه کلاس اضافه کنیم
برای فراخواندن کلاس در تابع اصلی
یک متغیر مینویسیم و برابر با نام کلاس میگزاریم
به همین سادگی یک کلاس را فراخاندیم
import math
class Calculator: یک کلاس را ساختیم
def __init__(self):
pass یک تابع خالی نوشتیم
def add(self, a, b):
return a + b
def subtract(self, a, b):
return a - b
def multiply(self, a, b):
return a * b
def divide(self, a, b):
if b != 0:
return a / b
else:
return "Error: Division by zero!"
def power(self, a, b):
return a ** b
def modulus(self, a, b):
return a % b
def cosine(self, a):
return math.cos(a)
def sine(self, a):
return math.sin(a)
def radical(self, a):
return math.sqrt(a)
calc = Calculator() کلاس را فراخوندیم
while True:
a = float(input("Enter the first number: "))
operation = input("Enter the operation (+, -, *, /, **, %, cos, sin, radical): ")
if operation not in ['+', '-', '*', '/', '**', '%', 'cos', 'sin', 'radical']:
print("Invalid operation!")
continue
if operation in ['cos', 'sin', 'radical']:
result = getattr(calc, operation)(a)
else:
b = float(input("Enter the second number: "))
result = getattr(calc, operation)(a, b)
print("Result:", result)
choice = input("Do you want to continue? (yes/no): ")
if choice != "yes":
break