Class methods accessing class attributes



examples/oop/mydate3/mydate.py

class Date:
    total = 0

    def __init__(self, Year, Month, Day):
        self.year  = Year
        self.month = Month
        self.day   = Day
        Date.total += 1

    def __str__(self):
        return 'Date({}, {}, {})'.format(self.year, self.month, self.day)

    def set_date(self, y, m, d):
        self.year = y
        self.month = m
        self.day = d

    @classmethod
    def get_total(class_object):
        print(class_object)
        return class_object.total


examples/oop/mydate3/run.py

from mydate import Date

d1 = Date(2013, 11, 22)
print(d1)
print(Date.get_total())
print(Date.total)
print('')

d2 = Date(2014, 11, 22)
print(d2)
print(Date.get_total())
print(Date.total)
print('')

d1.total = 42
print(d1.total)
print(d2.total)
print(Date.get_total())
print(Date.total)
Date(2013, 11, 22)
<class 'mydate.Date'>
1
1

Date(2014, 11, 22)
<class 'mydate.Date'>
2
2

42
2
<class 'mydate.Date'>
2
2