Python Programming Competency (Intermediate level)

  • 30m
  • 30 questions
The Python Programming Competency (Intermediate Level) benchmark measures your ability to identify situations where either deep or shallow copies are required. You will be assessed on your skills in implementing the powerful features of Python functions, recognizing functions as first class objects, using Python classes for advanced functionality, and working with recursion, closures, generators, decorators, and inheritance. A learner who scores high on this benchmark demonstrates that they have the skills to implement functional and object-oriented programming features in Python.

Topics covered

  • allow built-in functions to work with custom data types
  • apply generators to create infinite sequences
  • assign attributes to objects of classes
  • chain multiple decorators that apply to the same function
  • create closures that have access to local state variables
  • create shallow copies of lists
  • customize decorators that work with functions with different numbers of input arguments
  • define getters and setters for each instance variable
  • define, invoke, and discard lambdas
  • define multiple base classes for a single subclass
  • define multiple inheritance levels in classes
  • define properties using a simpler syntax
  • implement polymorphism in Python
  • model an is-a relationship using inheritance
  • parse information to create classes using a dictionary
  • pass arguments to initialize the state of a class object
  • perform multiplication operations on custom objects
  • perform shallow and deep copies of sets
  • perform shallow and deep copies of tuples
  • provide implementations for base class methods
  • recall how class variables share memory across objects of a class
  • recall the default base class for all Python classes
  • recall what it means to pass arguments by reference
  • represent objects using customized strings
  • specify how deep copies of dictionaries work
  • work with class hierarchies
  • work with functions that accept any number of arguments
  • work with the math and os modules in Python
  • work with utility methods on classes
  • write simple programs that involve recursive calls