Bird
Raised Fist0
Pythonprogramming~5 mins

Creating custom modules in Python - Performance & Efficiency

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: Creating custom modules
O(n)
Understanding Time Complexity

When we create custom modules in Python, we want to know how the time it takes to run our code changes as our program grows.

We ask: how does using a module affect the speed of our program as it gets bigger?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


# custom_module.py

def greet(name):
    return f"Hello, {name}!"

# main.py
import custom_module

users = ["Alice", "Bob", "Charlie"]  # Example list of users

for user in users:
    print(custom_module.greet(user))
    

This code imports a custom module with a simple function and calls it once for each user in a list.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Calling the greet function inside a loop over the users list.
  • How many times: Once for each user in the list.
How Execution Grows With Input

Each time we add more users, the program calls the greet function more times.

Input Size (n)Approx. Operations
1010 greet calls
100100 greet calls
10001000 greet calls

Pattern observation: The number of operations grows directly with the number of users.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows in a straight line as the number of users grows.

Common Mistake

[X] Wrong: "Importing a module makes the program slower every time I call its functions."

[OK] Correct: Importing happens once at the start; calling functions inside loops is what grows with input size.

Interview Connect

Understanding how your code runs when using modules helps you write clear and efficient programs, a skill valued in many coding challenges and real projects.

Self-Check

"What if the greet function itself had a loop over a list of greetings? How would the time complexity change?"

Practice

(1/5)
1. What is the main purpose of creating a custom module in Python?
easy
A. To make the program run faster
B. To store data permanently
C. To create graphical user interfaces
D. To organize and reuse code easily

Solution

  1. Step 1: Understand what a module is

    A module is a file containing Python code like functions or classes.
  2. Step 2: Identify the purpose of custom modules

    Custom modules help organize code and allow reuse in different programs.
  3. Final Answer:

    To organize and reuse code easily -> Option D
  4. Quick Check:

    Custom modules = organize and reuse code [OK]
Hint: Modules group code for reuse and clarity [OK]
Common Mistakes:
  • Thinking modules speed up code execution
  • Confusing modules with data storage
  • Assuming modules create user interfaces
2. Which of the following is the correct way to import a custom module named mymodule?
easy
A. import mymodule
B. include mymodule
C. using mymodule
D. load mymodule

Solution

  1. Step 1: Recall Python import syntax

    Python uses the keyword import to bring in modules.
  2. Step 2: Match correct syntax

    Only import mymodule is valid Python syntax for importing a module.
  3. Final Answer:

    import mymodule -> Option A
  4. Quick Check:

    Import module = import keyword [OK]
Hint: Use 'import' keyword to bring in modules [OK]
Common Mistakes:
  • Using 'include' or 'load' which are not Python keywords
  • Trying 'using' which is from other languages
  • Misspelling 'import'
3. Given a file math_ops.py with this code:
def add(a, b):
    return a + b

What will be the output of this code?
import math_ops
print(math_ops.add(3, 4))
medium
A. 7
B. 34
C. TypeError
D. NameError

Solution

  1. Step 1: Understand the function in math_ops.py

    The function add takes two numbers and returns their sum.
  2. Step 2: Analyze the import and function call

    Importing math_ops allows calling math_ops.add(3, 4), which returns 3 + 4 = 7.
  3. Final Answer:

    7 -> Option A
  4. Quick Check:

    3 + 4 = 7 [OK]
Hint: Imported functions run normally with correct arguments [OK]
Common Mistakes:
  • Confusing string concatenation with addition
  • Expecting errors due to import
  • Forgetting to call function with parentheses
4. You have a module file named utils.py with a function greet(). Which of these import statements will cause an error?
medium
A. import utils
B. import utils.greet
C. from utils import greet
D. from utils import greet as hello

Solution

  1. Step 1: Understand Python import rules

    You can import a module or specific functions from it, but not a function as a submodule.
  2. Step 2: Check each option

    Options B, C, and D are valid. import utils.greet tries to import a function as a module, which causes ImportError.
  3. Final Answer:

    import utils.greet -> Option B
  4. Quick Check:

    Functions are imported, not as submodules [OK]
Hint: Import modules or functions, not functions as modules [OK]
Common Mistakes:
  • Trying to import a function like a module
  • Confusing 'from' and 'import' usage
  • Using invalid aliases
5. You want to create a custom module text_utils.py with a function count_vowels(text) that returns the number of vowels in a string. Which code correctly defines this function?
hard
A. def count_vowels(text): vowels = 'aeiou' count = 0 for char in text: if char in vowels: count += 1 return count
B. def count_vowels(text): vowels = ['a', 'e', 'i', 'o', 'u'] count = 0 for char in text: if char in vowels: count += 1 return count
C. def count_vowels(text): vowels = 'aeiouAEIOU' return sum(1 for char in text if char in vowels)
D. def count_vowels(text): vowels = 'AEIOU' count = 0 for char in text: if char.lower() in vowels: count += 1 return count

Solution

  1. Step 1: Check vowel counting logic

    def count_vowels(text): vowels = 'aeiouAEIOU' return sum(1 for char in text if char in vowels) uses a string with both uppercase and lowercase vowels and counts characters in one line using sum and generator.
  2. Step 2: Compare other options

    def count_vowels(text): vowels = ['a', 'e', 'i', 'o', 'u'] count = 0 for char in text: if char in vowels: count += 1 return count misses uppercase vowels, def count_vowels(text): vowels = 'aeiou' count = 0 for char in text: if char in vowels: count += 1 return count misses uppercase vowels, def count_vowels(text): vowels = 'AEIOU' count = 0 for char in text: if char.lower() in vowels: count += 1 return count incorrectly checks lowercase char in uppercase vowels string.
  3. Final Answer:

    def count_vowels(text): vowels = 'aeiouAEIOU' return sum(1 for char in text if char in vowels) -> Option C
  4. Quick Check:

    Count vowels with case check = def count_vowels(text): vowels = 'aeiouAEIOU' return sum(1 for char in text if char in vowels) [OK]
Hint: Use sum with generator and full vowel set for case [OK]
Common Mistakes:
  • Ignoring uppercase vowels
  • Checking lowercase char in uppercase vowels string
  • Using list instead of string for vowels unnecessarily