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

Declaring classes in Python

Throughout this book, we will work with Python 3.4.3. However, all the explanations and code samples are compatible with Python 3.x.x. Therefore, you can work with previous Python versions as long as the major version number is 3. We will use JetBrains PyCharm Community Edition 4 as the main Python IDE and the supplier of an interactive Python console. However, you can use your favorite Python IDE or just the Python console.

Note

Everything is a class in Python, that is, all the elements that can be named in Python are classes. Guido van Rossum designed Python according to the first-class everything principle. Thus, all the types are classes, from the simplest types to the most complex ones: integers, strings, lists, dictionaries, and so on. This way, there is no difference between an integer (int), a string, and a list. Everything is treated in the same way. Even functions, methods, and modules are classes.

For example, when we enter the following lines in a Python console, we create a new instance of the int class. The console will display <class 'int'> as a result of the second line. This way, we know that area is an instance of the int class:

area = 250
type(area)

When we type the following lines in a Python console, we create a new instance of the function class. The console will display <class 'function'> as a result of the second line. Thus, calculateArea is an instance of the function class:

def calculateArea(width, height):
    return width * height

type(CalculateArea)

Let's analyze the simple calculateArea function. This function receives two arguments: width and height. It returns the width value multiplied by the height value. If we call the function with two int values, that is, two int instances, the function will return a new instance of int with the result of width multiplied by height. The following lines call the calculateArea function and save the returned int instance in the rectangleArea variable. The console will display <class 'int'> as a result of the third line. Thus, rectangleArea is an instance of the int class:

rectangleArea = calculateArea(300, 200)
print(rectangleArea)
type(rectangleArea)

The following lines create a new minimal Rectangle class in Python:

class Rectangle:
    pass

The class keyword followed by the class name (Rectangle) and a colon (:) composes the header of the class definition. In this case, the class doesn't have a parent class or a superclass. Therefore, there aren't superclasses enclosed in parentheses after the class name and before the colon (:). The indented block of statements that follows the class definition composes the body of the class. In this case, there is just a single statement, pass, and the class doesn't define either attributes or methods. The Rectangle class is the simplest possible class we can declare in Python.

Tip

Any new class you create that doesn't specify a superclass will be a subclass of the builtins.object class. Thus, the Rectangle class is a subclass of builtins.object.

The following line prints True as a result in a Python console, because the Rectangle class is a subclass of object:

issubclass(Rectangle, object)

The following lines represent an equivalent way of creating the Rectangle class in Python. However, we don't need to specify that the class inherits from an object because it adds unnecessary boilerplate code:

class Rectangle(object):
    pass
主站蜘蛛池模板: 南华县| 湖南省| 阿克陶县| 亚东县| 浮山县| 东阳市| 大丰市| 林口县| 嘉荫县| 台南市| 阿合奇县| 洛川县| 凤凰县| 白山市| 龙胜| 镇赉县| 驻马店市| 石城县| 平安县| 平陆县| 南昌县| 随州市| 理塘县| 苍梧县| 阿拉尔市| 涟水县| 贵溪市| 枝江市| 闽清县| 武川县| 嫩江县| 梨树县| 万荣县| 石林| 江孜县| 芦溪县| 万山特区| 长沙县| 宜黄县| 北辰区| 田林县|