Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialnicolaspeterson
8,569 PointsI'm not seeing the utility of packing or unpacking.
It would be nice if these tutorials included a real-world example where packing/unpacking was useful, instead of a passing reference to their usefulness.
4 Answers
Josh Keenan
20,315 PointsWell it's hard to put that into perspective, any time you have multiple bits of data being returned from some request can instantly be available as their own variables, a lot of the stuff you learn now won't really seem impressive or relevant for a while. Feel like when I started coding I got overloaded with stuff like this and until i had to make use of it, it was worthless.
nicolaspeterson
8,569 PointsHmmm, this doesn't clarify things much for me. What do you mean by positional vs. keywords arguments? In any event, I'm going to rewatch the entire course. Maybe that'll help me pick up on some of these hidden concepts.
Chris Freeman
Treehouse Moderator 68,441 PointsMore on positional and keyword arguments is found in later topics. You’ll get there.
Marcos Duran
Python Development Techdegree Student 3,052 PointsThe examples in this tutorial are positional arguments. They need to be passed in the order expected by the function.
With keywords you can define the function as such
def f(qty, item, price):
etc etc etc
and would call function: f(qty=1, item='bananas', price=1.74) so it allows some flexibility in the order for passing arguments.
As explained this is beyond the current level but will probably be made clear as you progress.
Travis Alstrand
Treehouse TeacherAlso, just like with 'Packing' earlier, the next video is 'Unpacking: A Practical Example'. This is just a simple demonstration to explain the basics of unpacking.
Sergio Andrés Herrera Velásquez
Python Development Techdegree Graduate 12,971 PointsSimply put, some functions or processes may provide some multiple data, which you may need to have in separate values.
For example in the following code:
import shutil archive_extensions=shutil.get_archive_formats() print(archive_extensions) [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]
The result is several values, that you may unpack with something like
bztar,gztar, tar,xztar, zip=archive_extensions this is so that you can use the extensions separately( for whatever purpose you may need it )
Chris Freeman
Treehouse Moderator 68,441 PointsChris Freeman
Treehouse Moderator 68,441 PointsExpanding on Josh's answer, packing and unpacking are done extensively, but it might seem "hidden". In calling any function or method or class instantiation, all arguments are packed into a
tuple
(for positional arguments) and adict
(for keyword arguments) then they are unpacked as they are assigned to parameters. This will lead to the*arg
(unpacking a tuple) and**kwarg
(unpacking a dict) idioms you'll learn more about later on.Packing and unpacking will lead to other useful tricks later on. It's one of the under appreciated features of Python!