An attribute reference is a primary followed by a period and a name:
attributeref: primary "." identifier
The primary must evaluate to an object of a type that supports attribute references, e.g., a module or a list. This object is then asked to produce the attribute whose name is the identifier. If this attribute is not available, the exception AttributeError is raised. Otherwise, the type and value of the object produced is determined by the object. Multiple evaluations of the same attribute reference may yield different objects.