פייתון/פייתון גרסה 3/פונקצית main
פונקצית main מגדירה לפיתון אילו הרצאות ופונקציות להריץ תחילה.
import random import time
class Ball:
def __init__(self, id, position): self.id = id self.position = position
def move(self): self.position += random.randint(-1, 1)
def binary_search(balls, target_id):
left, right = 0, len(balls) - 1 while left <= right: mid = (left + right) // 2 if balls[mid].id == target_id: return mid elif balls[mid].id < target_id: left = mid + 1 else: right = mid - 1 return -1
def main():
# יצירת כדורים עם מזהים ומיקומים אקראיים balls = [Ball(id, random.randint(0, 100)) for id in range(10)] balls.sort(key=lambda ball: ball.id) # מיון הכדורים לפי מזהה
print("כדורים במצב התחלתי:") for ball in balls: print(f"ID: {ball.id}, Position: {ball.position}")
target_id = int(input("הכנס מזהה כדור לחיפוש: ")) index = binary_search(balls, target_id)
if index != -1: print(f"כדור עם מזהה {target_id} נמצא במיקום {balls[index].position}") else: print(f"כדור עם מזהה {target_id} לא נמצא")
# הדמיית תנועת הכדורים for _ in range(10): for ball in balls: ball.move() time.sleep(1) print("מצב הכדורים לאחר תנועה:") for ball in balls: print(f"ID: {ball.id}, Position: {ball.position}")
if __name__ == "__main__":
main()
הפונקצית Main
עריכהניצור שני קבצים באותה תיקיה.
הראשון עם השם "first_file עם הכיתוב:
print(__name__)
השני עם השם "second_file עם הכיתוב:
import first_file
print('hello')
נריץ את שתי התכניות. התכנית הראשונה הדפיסה:
__main__
מפני שהקובץ הנוכחי אותו אנו מרצים מזוהה על ידי פיתון כקובץ ה-main, הקובץ הראשון שפיתון מריצה.
הקובץ השני ידפיס:
first_file
hello
כי הוא קובץ שמייבא את קובץ ה-"main" ולכן מריץ תחילה את הקובץ הראשון, first_file ואחר כך את יתר הפקודות.
הרצה יחידה של Main
עריכהאם נרצה שפיתון תריץ תכנית מסוימת ראשונה, אך לא נרצה כי תריץ מחדש, בקובץ המיבא את אותה תכנית, שוב רק מפני שהפנו אל קובץ זה, נוסיף את הפקודה:
if __name__ == "__main__":
main()
כלומר רק במידה והשם של הקובץ הנוכחי שווה הוא main תריץ את main, אחרת, הרץ את הקובץ.
נעדכן את התכנית:
הראשון עם השם "first_file בכיתוב:
def main():
print(__name__)
if __name__ == "__main__":
main() #run main
השני עם השם "second_file נותיר ללא שינוי.
הפעם כשנקרא אל הפונקציות נקבל אותה תוצאה לקובץ הראשון:
__main__
עבור הקובץ השני:
hello