【发布时间】:2016-01-14 09:20:02
【问题描述】:
假设我有一个名为 my_function 的函数,并且我通过以下方式传递一个对象作为其参数:
my_obj = MyClass()
my_function(my_obj)
有没有一种方法可以在 MyClass 的方法中打印函数的名称?
假设 MyClass 内部有一个名为 display_info 的方法,它会打印传递 MyClass 对象的函数名称。
一个例子是:
class MyClass:
def print_log(self):
# some code
def random_method_1():
pass
def random_method_2():
def my_function(param1, some_name, some_number):
# some code
# Instantiating MyClass
my_object = MyClass()
# Calling my_function
my_function(my_object, "John Doe", 38478347)
my_object.print_log()
# Above line of code should be able to print "my_function"
【问题讨论】:
-
我认为你应该澄清你的意思。如何使用它以及您期望的结果。
-
答案基本上是否定的,但我不是很明白你的问题。您打算什么时候打印?你想让
my_function(my_obj)打印“my_function”吗?如果是这样,为什么不直接在my_function内部做呢? -
我认为@bakkal 为您提供了一个很好的答案,我想指出,听起来您正在创建一台会产生“副作用”的“奇怪机器”。这是非常糟糕的做法。也许你有一个很好的动机想要这种设计,但总的来说,我会说你的问题是架构上的,而不是程序上的。
标签: python