פייתון/פייתון גרסה 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