summaryrefslogtreecommitdiffstats
path: root/Doc/tutorial/classes.rst
diff options
context:
space:
mode:
authorRaymond Hettinger <rhettinger@users.noreply.github.com>2019-08-23 06:27:04 (GMT)
committerGitHub <noreply@github.com>2019-08-23 06:27:04 (GMT)
commit483ae0cf1dcf46f8b71c4bf32419dd138e908553 (patch)
treeac4b4cf9a0d4d8c56ab45f3999378ceacba76629 /Doc/tutorial/classes.rst
parent657008ea0336ff4f275ed3f0c2b6dd2e52de2bba (diff)
downloadcpython-483ae0cf1dcf46f8b71c4bf32419dd138e908553.zip
cpython-483ae0cf1dcf46f8b71c4bf32419dd138e908553.tar.gz
cpython-483ae0cf1dcf46f8b71c4bf32419dd138e908553.tar.bz2
bpo-12634: Clarify an awkward section of the tutorial (GH-15406)
Diffstat (limited to 'Doc/tutorial/classes.rst')
-rw-r--r--Doc/tutorial/classes.rst20
1 files changed, 14 insertions, 6 deletions
diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst
index 7619ccb..0c0dca9 100644
--- a/Doc/tutorial/classes.rst
+++ b/Doc/tutorial/classes.rst
@@ -475,12 +475,20 @@ Random Remarks
.. These should perhaps be placed more carefully...
-Data attributes override method attributes with the same name; to avoid
-accidental name conflicts, which may cause hard-to-find bugs in large programs,
-it is wise to use some kind of convention that minimizes the chance of
-conflicts. Possible conventions include capitalizing method names, prefixing
-data attribute names with a small unique string (perhaps just an underscore), or
-using verbs for methods and nouns for data attributes.
+If the same attribute name occurs in both an instance and in a class,
+then attribute lookup prioritizes the instance::
+
+ >>> class Warehouse:
+ purpose = 'storage'
+ region = 'west'
+
+ >>> w1 = Warehouse()
+ >>> print(w1.purpose, w1.region)
+ storage west
+ >>> w2 = Warehouse()
+ >>> w2.region = 'east'
+ >>> print(w2.purpose, w2.region)
+ storage east
Data attributes may be referenced by methods as well as by ordinary users
("clients") of an object. In other words, classes are not usable to implement