python magic method first