Files
coding-mentor-agent/kb/python-course-kb-practical-python/wiki/exercises/5-2-modification-of-instance-data.md
T

55 lines
1.5 KiB
Markdown

---
id: practical-python-5.2
source_exercise_id: "5.2"
title: "Modification of Instance Data"
section: "5.1 Dictionaries Revisited"
source_path: "05_Object_model/01_Dicts_revisited.md"
source_repo: "https://github.com/dabeaz-course/practical-python"
source_commit: "93dca856b41c61a0a0f85ae334116e4c125629ea"
student_visible_solution: false
has_private_solution: false
skip: false
---
# Exercise 5.2: Modification of Instance Data
> Source: Practical Python Programming, `05_Object_model/01_Dicts_revisited.md`.
### Exercise 5.2: Modification of Instance Data
Try setting a new attribute on one of the above instances:
```python
>>> goog.date = '6/11/2007'
>>> goog.__dict__
... look at output ...
>>> ibm.__dict__
... look at output ...
>>>
```
In the above output, you'll notice that the `goog` instance has a
attribute `date` whereas the `ibm` instance does not. It is important
to note that Python really doesn't place any restrictions on
attributes. For example, the attributes of an instance are not
limited to those set up in the `__init__()` method.
Instead of setting an attribute, try placing a new value directly into
the `__dict__` object:
```python
>>> goog.__dict__['time'] = '9:45am'
>>> goog.time
'9:45am'
>>>
```
Here, you really notice the fact that an instance is just a layer on
top of a dictionary. Note: it should be emphasized that direct
manipulation of the dictionary is uncommon--you should always write
your code to use the (.) syntax.
## 关联来源
- [[summaries/01_Dicts_revisited]]