When creating a test case in the unittest framework, which method is used to contain the individual tests that the test runner will execute?
- runTest
- setUp
- tearDown
- testMethod
In the unittest framework, individual test methods should start with the word "test" (e.g., test_something). These methods contain the actual test logic that the test runner executes.
When debugging, the ____ command in Pdb is used to print the value of an expression.
- inspect
- p
- view
In the Python Debugger (pdb), you can use the p or print command to display the value of an expression. This is helpful for inspecting variables and understanding program state during debugging.
When defining a custom exception, it should typically be derived from the built-in ____ class.
- CustomException
- Error
- Exception
- Throwable
When defining custom exceptions in many programming languages, including Python and Java, it's a best practice to derive them from a built-in exception class like 'Exception.' This allows your custom exception to inherit essential exception handling features.
When designing a RESTful API, how should you handle versioning of the API?
- Do not version the API
- Hardcode the version in the API endpoints
- Include the version in the URL (e.g., /v1/resource)
- Use a header like "X-API-Version"
The recommended way to handle API versioning in RESTful APIs is by including the version in the URL. This ensures backward compatibility and makes it clear which version of the API a client is using. The other options are not considered best practices.
When implementing a recursive algorithm, what is crucial to avoid infinite recursion?
- A base case
- A high stack size
- A loop
- Global variables
In a recursive algorithm, it's crucial to have a base case that defines when the recursion should stop. Without a base case, the algorithm will keep calling itself indefinitely, leading to infinite recursion and a stack overflow error.
What is the time complexity of inserting an element into a balanced binary search tree?
- O(1)
- O(log n)
- O(n log n)
- O(n)
The time complexity of inserting an element into a balanced binary search tree (BST) is O(log n), where n is the number of nodes in the BST. In a balanced BST, each insertion or search operation reduces the search space by half, leading to logarithmic time complexity.
What would be the best data structure to implement a priority queue?
- Heap
- Linked List
- Queue
- Stack
A Heap is the best data structure to implement a priority queue. Heaps, such as Binary Heaps or Fibonacci Heaps, efficiently maintain the highest-priority element at the top, allowing for quick access and extraction of elements with the highest priority.
What would be the best sorting algorithm to use if you are concerned about worst-case time complexity?
- Bubble Sort
- Merge Sort
- Quick Sort
- Selection Sort
Merge Sort is known for its consistent and reliable worst-case time complexity, which is O(n log n) for both average and worst cases. Quick Sort, although efficient in practice, can have a worst-case time complexity of O(n^2) if not implemented carefully.
What would be the most efficient way to handle real-time data updates between a Python back-end and a front-end application?
- Poll the server at regular intervals
- Use HTTP long polling
- Use WebSockets
- Utilize RESTful APIs
Using WebSockets is the most efficient way to handle real-time data updates. WebSockets provide full-duplex communication channels over a single TCP connection, enabling real-time, bidirectional data transfer between the server and client.
What would be the result of attempting to import a module that does not exist?
- It will prompt you to create the module.
- It will silently fail, and no error will be thrown.
- You will get a runtime error, and the program will crash.
- You will receive a warning but the program will continue running.
When attempting to import a non-existent module in JavaScript, it will silently fail, and no error will be thrown. This is because ES6 modules use static imports, and errors are only raised at runtime when the module cannot be found during the initial load.