get function name python
# You can get any function's or class's name as a string with __name__.
# In fact, using just __name__ will return a module's name, or "__main__"
# if the file is the current running script
def this_is_my_name():
pass
class MyName:
def __init__(self) -> None:
pass
def __str__(self) -> str:
# this is just so we can get a more readable output
return "MyName Object"
# as you can see later on, you can't get a variable's name the same way
named_variable = 231
named_instance = MyName()
list_of_stuff_w_names = [this_is_my_name, MyName, named_instance, named_variable]
print ("- Script running in", __name__)
for stuff_w_name in list_of_stuff_w_names:
try:
print ("-", f"{stuff_w_name.__name__ = }")
except AttributeError:
print ("-", stuff_w_name, "doesn't have a __name__!")
"""
OUTPUT:
- Script running in __main__
- stuff_w_name.__name__ = 'this_is_my_name'
- stuff_w_name.__name__ = 'MyName'
- MyName Object doesn't have a __name__!
- 231 doesn't have a __name__!
"""