-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsec-attribute.ptx
More file actions
148 lines (128 loc) · 3.72 KB
/
sec-attribute.ptx
File metadata and controls
148 lines (128 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?xml version="1.0" encoding="UTF-8"?>
<!--*****************************************
This is part of Basic Programming
Copyright (C) 2024
Phạm Công Vinh
See the file COPYING for copying conditions.
******************************************-->
<section xml:id="sec-attribute" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Attributes</title>
<objectives>
<ul>
<li>Learn about attributes and how to access them.</li>
</ul>
</objectives>
<definition xml:id="def-attribute">
<idx><h>Definitions</h><h>of attributes</h></idx>
<statement>
<p>
An <term>attribute</term> is a built-in variable storing <em>descriptive information</em> regarding another piece of data. In other words, it's metadata.
</p>
<p>
Every data type has its own set of attributes.
</p>
<p>
The attributes of a piece of data are <em>automatically updated</em> when said data is updated.
</p>
</statement>
</definition>
<technology>
<title>Accessing an attribute</title>
<idx><h>Syntax</h><h>of accessing attributes</h></idx>
<p>
<me>\text{data} . \! {\color{blue} \text{attribute's name}}</me>
</p>
</technology>
<p>
To demonstrate attributes, the following example makes use of an external data structure<mdash />a matrix imported from the external library Numpy (which you don't have to fully understand):
</p>
<aside>
<title>Topic(s) you might be interested in</title>
<p>
<ul>
<li>
<p>
<idx><h>Links</h><h>Python libraries</h></idx>
<url href="https://www.google.com/search?q=what+is+a+Python+library" visual="google.com/search?q=what+is+a+Python+library">"what is a Python library"</url>
</p>
</li>
<li>
<p>
<idx><h>Links</h><h>Numpy</h></idx>
<url href="https://www.google.com/search?q=what+is+Numpy" visual="google.com/search?q=what+is+Numpy">"what is Numpy"</url>
</p>
</li>
<li>
<p>
<idx><h>Links</h><h>matrices</h></idx>
<url href="https://www.google.com/search?q=what+is+a+matrix" visual="google.com/search?q=what+is+a+matrix">"what is a matrix"</url>
</p>
</li>
</ul>
</p>
</aside>
<sage language="python">
<input>
import numpy as np # Use library Numpy
mat = np.matrix([
[1, 2, 3],
[2, 4, 6]
])
print(mat.size)
print(mat.shape)
</input>
</sage>
<problem>
<pre>
6
(2, 3)
</pre>
</problem>
<investigation>
<idx><h>Code examples</h><h>accessing attributes</h></idx>
<idx><h>Functions</h><h>np.matrix()</h></idx>
<p></p>
<p>
<c>mat.size</c> returns the total number of elements of the matrix named <c>mat</c>.
</p>
<p>
<c>mat.shape</c> returns the number of rows and columns of the matrix respectively.
</p>
</investigation>
<p>
However, the data type <c>int</c>, for example, does not have such attributes:
</p>
<sage language="python">
<input>
a = 5
print(a.size)
</input>
</sage>
<problem>
<pre>
AttributeError
Cell In [1], line 2
...
AttributeError: 'int' object has no attribute 'size'
</pre>
</problem>
<investigation>
<idx><h>Code examples</h><h>accessing invalid attribute</h></idx>
<p></p>
<p>
As the error states.
</p>
</investigation>
<p>
<cd>
</cd>
</p>
<exploration>
<title>Basic Programming <mdash /> Part 9: Attributes</title>
<idx><h>Videos</h><h>part 09</h></idx>
<p>
Coming soon.
</p>
<video youtubeplaylist="PLBLdRr-v59vwnKvmvLtcgmAnsb2K1Ta_M" />
</exploration>
</section>