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 atributos para esta classe" )
object .__setattr__ ( self , key, value)
c = Circulo( )
c.raio = 2 # ok
c.lado = 2 # AttributeError
aW1wb3J0IG1hdGgKCmNsYXNzIENpcmN1bG8oKToKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICBzdXBlcigpCiAgICAgICAgc2VsZi5fX3JhaW8gPSBOb25lCgogICAgZGVmIGdldF9wZXJpbWV0cm8oc2VsZik6CiAgICAgICAgcmV0dXJuIDIgKiBtYXRoLnBpICogc2VsZi5yYWlvCgogICAgZGVmIGdldF9hcmVhKHNlbGYpOgogICAgICAgIHJldHVybiBtYXRoLnBpICogc2VsZi5yYWlvICoqIDIKCiAgICBAcHJvcGVydHkKICAgIGRlZiByYWlvKHNlbGYpOgogICAgICAgIHJldHVybiBzZWxmLl9fcmFpbwoKICAgIEByYWlvLnNldHRlcgogICAgZGVmIHJhaW8oc2VsZiwgeCk6CiAgICAgICAgc2VsZi5fX3JhaW8gPSB4CiAgICAKICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBrZXksIHZhbHVlKToKICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCBrZXkpOgogICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIk7Do28gcG9kZSBjcmlhciBhdHJpYnV0b3MgcGFyYSBlc3RhIGNsYXNzZSIpCiAgICAgICAgb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIGtleSwgdmFsdWUpCgpjID0gQ2lyY3VsbygpCmMucmFpbyA9IDIgIyBvawpjLmxhZG8gPSAyICMgQXR0cmlidXRlRXJyb3I=