Python Variable Assignment
It's important to understand that in Python, the term "variable declaration" is not used. Instead, variables are created through assignment, simply giving a name to an object.
Class Attribute Assignment
Variables within a class body are considered class attributes, shared among all instances of that class.
<code class="python">class Writer: path = "" customObj = CustomType() # Create variable to hold custom type object</code>
Instance Attribute Assignment
Attributes can also be assigned to individual instances using the __init__() method or by directly assigning to the instance attribute:
<code class="python">def __init__(self, path, customObj): self.path = path self.customObj = customObj # Assign custom type object to instance instance = Writer("/my/path", CustomType())</code>
Understanding Python's Objects
In Python, classes are objects, and variables are names that refer to objects. Class attributes exist on the class object, while instance attributes are created and stored on individual instances.
Assigning to Instance Attributes
When assigning to an instance attribute, Python checks the instance first. If the attribute doesn't exist on the instance, it will search the class. However, modifications made to an instance attribute will only affect that specific instance, preserving the original class attribute.
Lists and Mutation
It's important to note that assigning to a list object doesn't create a new list, but rather modifies the existing one. Therefore, changes made to a list attribute in one instance will be visible in all other instances using that same list attribute.
Conclusion
In summary, Python utilizes assignment to create and modify variables. Class and instance attributes can be declared to hold various types of data, including custom objects. Understanding the hierarchical nature of object attributes in Python is crucial for managing data effectively within classes and instances.
The above is the detailed content of How Does Variable Assignment Work in Python: Classes, Instances, and Object References?. For more information, please follow other related articles on the PHP Chinese website!