import math
class Circulo( ) :
def __init__ ( self ) :
super ( )
self .__raio = None
def get_perimetro( self ) :
return 2 * math .pi * self .raio
def get_area( self ) :
return math .pi * self .raio ** 2
@ property
def raio( self ) :
return self .__raio
@ raio.setter
def raio( self , x) :
self .__raio = x
def __setattr__ ( self , key, value) :
if not hasattr ( self , key) :
raise TypeError ( "Não pode criar atributo {} para esta classe" .format ( key) )
object .__setattr__ ( self , key, value)
c = Circulo( )
c.raio = 2 # ok
c.lado = 2 # AttributeError
aW1wb3J0IG1hdGgKCmNsYXNzIENpcmN1bG8oKToKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICBzdXBlcigpCiAgICAgICAgc2VsZi5fX3JhaW8gPSBOb25lCgogICAgZGVmIGdldF9wZXJpbWV0cm8oc2VsZik6CiAgICAgICAgcmV0dXJuIDIgKiBtYXRoLnBpICogc2VsZi5yYWlvCgogICAgZGVmIGdldF9hcmVhKHNlbGYpOgogICAgICAgIHJldHVybiBtYXRoLnBpICogc2VsZi5yYWlvICoqIDIKCiAgICBAcHJvcGVydHkKICAgIGRlZiByYWlvKHNlbGYpOgogICAgICAgIHJldHVybiBzZWxmLl9fcmFpbwoKICAgIEByYWlvLnNldHRlcgogICAgZGVmIHJhaW8oc2VsZiwgeCk6CiAgICAgICAgc2VsZi5fX3JhaW8gPSB4CiAgICAKICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBrZXksIHZhbHVlKToKICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCBrZXkpOgogICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIk7Do28gcG9kZSBjcmlhciBhdHJpYnV0byB7fSBwYXJhIGVzdGEgY2xhc3NlIi5mb3JtYXQoa2V5KSkKICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwga2V5LCB2YWx1ZSkKCmMgPSBDaXJjdWxvKCkKYy5yYWlvID0gMiAjIG9rCmMubGFkbyA9IDIgIyBBdHRyaWJ1dGVFcnJvcg==