Skip to content

Functions notes #2

@parthsarin

Description

@parthsarin
  • Namespaces are new (I know they're marked as "revisited" in the notes, but they never appear before – alternatively, we can add them to Python basics?
  • Builtins: you shouldn't be naming variables that overwrite Python's builtins (abs, len, list - a full list is available here) in the first place, but in the event that you are, Python will check here anyways. 🙃

    Either this is incorrect or I'm getting confused by it. Consider, for example:

    sum = 3
    sum(1, 2, 3) # TypeError: 'int' object is not callable

    In this code, Python will use 3 in place of the builtin sum when sum is referenced. That means Python a) doesn't "check here [the builtins] anyways" because it stops once it finds sum in the global table, b) it's a little misleading to say that we're "overwriting" the builtin even though we talk that way – you can still access it with __builtins__.sum.

  • When calling a function, Python enforces that positional arguments must appear in the function call before keyword arguments.

    Might want to mention why?

  • This is kinda painful, but it's not precise to describe the first/second line(s) of execution like you do.
  • You never mentioned that "if this is confusing, you can treat mutable objects like pass-by-reference and immutable objects like pass-by-value."
  • Can we rename `euclidean_dist`? I think some students might not know what that means.

I didn't look over everything, but these are my initial thoughts!

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions