לדלג לתוכן

פייתון/פייתון גרסה 3/אוביקטיים ושיתופם

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

ההגדרות ב-INIT שאינם שדות משותפים לכל האויבקטים בעוד השדה עצמו הוא יחודי לאוביקט עצמו:


class Cats:

class Cats:
    def __init__(self):
        self.x = 1
        Cats.legs = 4
        print('new cat')

    def add_leg(self):
        self.x = self.x + 1
        Cats.legs = Cats.legs + 1

        return self.x + Cats.legs
miki=Cats()
lopi=Cats()

print(miki.add_leg())
print(lopi.add_leg())

>>>new cat
>>>new cat
>>>7
>>>8

תחילה ה-INIT תודפס בשל יצירת שני האוביקטיים ולכן מודפס פעמים "new cat".

לאחר מכן קראנו לפונקציה add_leg. מספר הרגלים של החתולים השתנה ל5 עבור כלל החתולים, ואילו ערך x השתנה עבור החתול miki לבדו, מאחד לשתים. על כן הפונקציה החזירה 2+5 ובשל הקריאה להדפסה מודפס המספר 7.

עתה משקראנו לחתול השני, מספר רגליו כבר 5 אך ערך ה-X שלו זהה לערך הקודם. עתה הוספנו לכל אחד מהערכים אחד ולכן קבלנו שמספק הרגלים הוא 6 ואילו ערך ה-X הוא 2. לען הפונקציה תדפיס 8