Objetos - johncroth/pythonEd2024 GitHub Wiki
We have just learned about how to call and create functions, but there is another way to call functions in Python that is very fundamental and very common, ad it is time to learn it. To talk about this, we need to discuss the concept of objects in Python.
Save and execute the program below as objectos_a.py:
amigos = [ "angela", "dolores", "beto" ]
otras = [ "xavier", "yuri" ]
print( amigos )
print( otras )
amigos.append( "carlos" )
print( amigos)
print( otras )
Of course, this program defines 2 variables personas and otras with a list of names, prints out the lists, adds the name "carlos" to that
and prints out value of the revised lists. (We have actually used this append function before.) What is this
append function? Well, append is a function that "belongs" to a particular list, and the line amigos.append( "carlos" )
says "add "carlos" to the list amigos." We have another list otras but that is not affected by amigos.append( "carlos" ).
If we want to append a name to otras we do that like this: (add the following lines to objectos_a.)
otras.append( "zina" )
print( personas )
print( otras )
You can see that the program adds "carlos" to amigos and "zina" to otras." The function amigos.append only changes the list
in amigos, and otras.append only affects the list in otras. We say the function append acts to a particular list, the list
named to the left of the .append.
There are lots of functions on lists
There are many ways that we might want to change a list, and there are a lot of functions belonging to lists that we can use
amigos = [ "angela", "dolores", "beto" ]
amigos.insert( 1, "miguel" )
print( amigos )
amigos.sort()
print( amigos )
amigos.reverse()
print( amigos )
Two turtles
This
But Why? (Optional)
Why do this thing with the dot . as in amigos.append("carlos") above? Well, what's the alternative? We could define a function:
def append( lista, cosa ):
# adjuntar cosa a lista en alguna manera
However, there are actually other things besides list we would like to append to (strings of characters, files, dictionaries, and more.) So it would have to be more like
def append_a_lista( lista, cosa):
# ajuntar cosa a lista en alguna manera
def append_a_cadena( cadena, cosa):
# algo asi
And so on. But, it is obvious from amigos.append("carlos") that we are appending to a certain list, and from "letras".append( "x")
The big question
Is how can you write a function in this style? The answer is a bit complicated.