From 94a10b216eb0d2dc9a979bbc5cbba300b6f27bbe Mon Sep 17 00:00:00 2001 From: Helin Date: Tue, 23 Dec 2025 10:57:21 +0300 Subject: [PATCH] Add custom power and equation functions --- Week04/functions_helin_harman.py | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Week04/functions_helin_harman.py diff --git a/Week04/functions_helin_harman.py b/Week04/functions_helin_harman.py new file mode 100644 index 00000000..aed60332 --- /dev/null +++ b/Week04/functions_helin_harman.py @@ -0,0 +1,55 @@ +import inspect + + +# ------------------------------------------------- +# custom_power +# ------------------------------------------------- +custom_power = lambda x=0, /, e=1: x**e + + +# ------------------------------------------------- +# custom_equation +# ------------------------------------------------- +def custom_equation( + x: int = 0, + y: int = 0, + /, + a: int = 1, + b: int = 1, + *, + c: int = 1, +) -> float: + """ + Calculate a custom equation. + + :param x: positional-only integer + :param y: positional-only integer + :param a: positional-or-keyword integer + :param b: positional-or-keyword integer + :param c: keyword-only integer + :return: result of the equation + """ + + for name, value in {"x": x, "y": y, "a": a, "b": b, "c": c}.items(): + if not isinstance(value, int): + raise TypeError(f"{name} must be int") + + return (x**a + y**b) / c + + +# ------------------------------------------------- +# fn_w_counter +# ------------------------------------------------- +_counter = 0 +_callers = {} + + +def fn_w_counter() -> (int, dict[str, int]): + global _counter # ✅ sadece bu global gerekli + + _counter += 1 + + module_name = inspect.getmodule(fn_w_counter).__name__ + _callers[module_name] = _callers.get(module_name, 0) + 1 + + return _counter, {module_name: _callers[module_name]}