官术网_书友最值得收藏!

Data encapsulation and properties

Unless otherwise specified, all attributes and methods are accessible without restriction. This also means that everything defined in a base class is accessible from a derived class. This may cause problems when we are building object-oriented applications where we may want to hide the internal implementation of an object. This can lead to namespace conflicts between objects defined in derived classes with the base class. To prevent this, the methods we define private attributes with have a double underscore, such as __privateMethod(). These method names are automatically changed to _Classname__privateMethod() to prevent name conflicts with methods defined in base classes. Be aware that this does not strictly hide private attributes, rather it just provides a mechanism for preventing name conflicts.

It is recommended to use private attributes when using a class property to define mutable attributes. A property is a kind of attribute that rather than returning a stored value, computes its value when called. For example, we could redefine the exp() property with the following:

    class Bexp(Aexp): 
__base=3
def __exp(self):
return(x**cls.base)

In this chapter, we have looked at some of the fundamentals of the Python programming language, from basic operations to functions, classes, and objects in Python. In the next chapter, we will examine, in detail, the built-in data structures of Python.

主站蜘蛛池模板: 九龙城区| 阿荣旗| 抚远县| 云浮市| 鄂伦春自治旗| 东海县| 柯坪县| 荆州市| 宜兰市| 阜南县| 绥德县| 松原市| 金秀| 东平县| 呈贡县| 鲁山县| 沙田区| 珲春市| 汕尾市| 腾冲县| 尉犁县| 玉门市| 秦皇岛市| 瓦房店市| 南江县| 余庆县| 工布江达县| 通榆县| 阿瓦提县| 新泰市| 黄石市| 万年县| 郎溪县| 芮城县| 乐东| 新化县| 江都市| 饶阳县| 明星| 昭平县| 长岛县|