How to do * and & C-lang. operations in Python?
Chris Barker
chrishbarker at home.net
Thu Sep 20 16:48:35 EDT 2001
More information about the Python-list mailing list
Thu Sep 20 16:48:35 EDT 2001
- Previous message (by thread): How to do * and & C-lang. operations in Python?
- Next message (by thread): How to do * and & C-lang. operations in Python?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Gerhard Häring wrote: > > I have a variable defined on one module, and want to use _exactly_ the > > same variable in other module. Example: > > Assignaments are done by 'value', not by 'reference'. Function calls > > are done by 'reference'. How to do assignaments by reference? no, not exactly. Here is an example: >>> a = 5 # a is a refernce to the integer object: 5 >>> b = a # b is a reference to the same object as a >>> a is b 1 # they are the same object >>> a 5 >>> b 5 # they have the same value >>> a = 3 # is now a reference to a different integer object: 3 >>> a 3 >>> b 5 >>> a is b 0 # a and b now point to different objects Assignment is a reference, but integers are an immutable type, so they can't be changed. When you re-assign a variable, you have to point it to a new object. Other immutable objects are tuples, stings, other numbers. If, on the other hand you use a mutable object, it can be changed in place. lists, dictionaries, classes, etc are mutable types, so you can do what was suggested: > Use instances of classes. Assignments work by reference with class > instances. but you can also use any mutable type: >>> a = [1,2,3] >>> b = a >>> a is b 1 >>> a[0] = 10 >>> a [10, 2, 3] >>> b [10, 2, 3] >>> b[2] = 30 >>> a [10, 2, 30] >>> b [10, 2, 30] In this case, a and b both refer to the same list, so when the list is changed, they are both affected. NOte that if you want a copy of a list instead, you can do: >>> a = [1,2,3] >>> b = a[:] >>> a is b 0 slicing returns a reference to a copy, not a refernce to the list itself. In python it is easier to think in terms of mutable vs. immutable types, rather than references vs. copies. -Chris -- Christopher Barker, Ph.D. ChrisHBarker at home.net --- --- --- http://members.home.net/barkerlohmann ---@@ -----@@ -----@@ ------@@@ ------@@@ ------@@@ Oil Spill Modeling ------ @ ------ @ ------ @ Water Resources Engineering ------- --------- -------- Coastal and Fluvial Hydrodynamics -------------------------------------- ------------------------------------------------------------------------
- Previous message (by thread): How to do * and & C-lang. operations in Python?
- Next message (by thread): How to do * and & C-lang. operations in Python?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list