We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- Python
- Debugging
- Default Arguments
- Discussions
Default Arguments
Default Arguments
Sort by
recency
|
206 Discussions
|
Please Login in order to post a comment
no clarity in the challenge as per my understanding
I'm not sure where the function is given - there is no
print_from_stream
name inlocals()
(or any other name that could lead to it).I am a new user on this platform and I have no idea where these code stubs are.
I have assumed that what the author actually meant was to implement
print_from_stream
,EvenStream
andOddStream
- and it seems to have worked: https://www.hackerrank.com/challenges/default-arguments/submissions/code/424109419 .If you let
stream
argument with default value asEventStream()
, Python declares the EvenStream instance shared across all this function calls, no matter how much times you call it. To fix it, you must set default value to None and declare the instance into the function.They shouldn't define the assignment as "debugging", it's misleading because "debugging" means a very specific process which requires test or application code with a use case. What they meant to say was "notice a bug", or "there is a bug in this code, what is it?", or "Is there bug in this code?". Also, there was no code on the screen at all. ...After a few next minutes looking for code and promised "provided test files", and pushing randomly buttons I got a message saying that the "test files" cost 5 hackos. Wouldn't be better at the begining of the assignment to inform the reader where the "test files" are and that they would cost money, and also from the beggining on to state that one should open a paying account?
class EvenStream: def init(self): self.current = 0
class OddStream: def init(self): self.current = 1
def print_from_stream(n, stream=None): if stream is None: stream = EvenStream() for _ in range(n): print(stream.get_next())
if name == "main": queries = int(input()) for _ in range(queries): stream_name, n = input().split() n = int(n) if stream_name == "even": print_from_stream(n) elif stream_name == "odd": print_from_stream(n, OddStream())