<< Chapter < Page
  Itse 1359 introduction to     Page 4 / 7
Chapter >> Page >

Figure 3. The truth about pigeonholes.

missing image

A code visualizer tool

The image in Figure 3 was produced using a code visualizer tool from the Online Python Tutor . At this point in the course, you can ignore the buttons at the bottom of Figure 3 and concentrate on the code window on the upper left and the diagram on the right.

Although not implemented using the Python interactive interface, the code shown in the code window in Figure 3 is similar to code discussed earlier in this module.

Creation of variables and objects

The first two lines of code in Figure 3 show the creation of two variables named x and y and the assignment of the values 6 and 5 to those variables respectively. Thediagram on the right in Figure 3 shows what actually happens in memory as those two lines of code are executed.

The two variables are created and stored in something called the Global frame . Two objects of type int are created and values of 6 and 5 are stored in those objects. The objects themselves are stored in a partof memory commonly called the heap .

The important point

Now here is the important point. The values of 6 and 5 are not actually stored in the variables. Instead, references (sometimes called pointers) that point to the objects containing the values of 6 and 5 are stored in thevariables. Those references can later be used to find and to access the contents of the objects.

The sum of two variables

The statement on line 3 in Figure 3 creates a new variable named z on the left side of the assignment operator. The expression on the right side of theassignment operator accesses the contents of the first two objects, adds their values, and assigns the result to the variable named z . This in turn causes a new object of type int

  • to be created,
  • populated with a value of 11 (the sum of 6 and 5) , and
  • stored on the heap.

A reference to the new object is stored in the new variable named z .

Assigning the same value To several variables

The statement on line 4 in Figure 3 creates three more variables named a, b, and c and assigns a value of 10 to each of them. The diagram on the rightindicates that a single new object of type int containing the value 10 is created and stored on the heap. References to that single object are stored inall three variables named a, b, and c. In other words, the contents of all threevariables point to the same object.

Finally, on line 5, a value of 10 is stored in a new variable named d . The diagram on the right shows that a reference to the existing object containingthe value 10 is stored in this variable as well. Thus, this variable shares an object with the variables named a , b , and c .

Breaking a reference to an object

Figure 4 shows what happens if a different value is assigned to an existing variable. In this case, the string value "ok" is assigned to the existing variablenamed b by the last statement in the code in Figure 4 .

Figure 4. Assign a different value to the variable named b.

missing image

The diagram on the right in Figure 4 shows that this causes a new object of type str

  • to be created,
  • populated with "ok", and
  • stored on the heap.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Itse 1359 introduction to scripting languages: python. OpenStax CNX. Jan 22, 2016 Download for free at https://legacy.cnx.org/content/col11713/1.32
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?

Ask