Object-Oriented Programming in Python
Alex Yarosh
Content Quality Analyst @ DataCamp

@property to customize access__getattr__() and __setattr__()obj._att_name, obj._method_name()
_ → "internal"df._is_mixed_type , datetime._ymd2ord()
obj.__attr_name , obj.__method_name()
__ → "private" obj.__attr_name is interpreted as obj._MyClass__attr_name
Leading and trailing __ are only used for built-in Python methods (__init__(),__repr__())!
Object-Oriented Programming in Python