
Get a function name in Python
We can get a function name by the __name__
attribute.
def hello():
return 'hello'
n = hello.__name__
print(n) # hello
Details
All are, in principle, objects in Python and a function itself is an object. It has several built-in methods like __class__
and __name__
.
def hello():
return 'hello'
a = isinstance(hello, object)
print(a) # True
s = hello.__str__()
c = hello.__class__
n = hello.__name__
print(s) # <function hello at 0x1037dc1f0>
print(c) # <class 'function'>
print(n) # hello
Note that isinstance is used to check the object type. __str__
returns an object type of the function. To get a function name, it's enough to use __name__
.
Get the list of methods
class A:
def __init__(self):
pass
def buy(self):
pass
a = A()
x = a.__dir__()
y = A.__dict__.keys()
print(x)
# ['__module__', '__init__', 'buy', '__dict__', '__weakref__', '__doc__', '__repr__', '__hash__', '__str__', '__getattribute__', '__setattr__', '__delattr__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__new__', '__reduce_ex__', '__reduce__', '__subclasshook__', '__init_subclass__', '__format__', '__sizeof__', '__dir__', '__class__']
print(y)
# dict_keys(['__module__', '__init__', 'buy', '__dict__', '__weakref__', '__doc__'])
To get all the methods, use __dir__
or __dict__
.
__dir__
is a method of instance and __dict__
is a method of class. Both results contain buy
function.
Comments
Powered by Markdown