如何查看课堂上或课堂外的来电? e.g。
class Test:
def dog(self):
#Call from inside of the class
self.cat()
def cat(self):
#how to check if call is made from inside the class or outside?
return
#Call from outside of the class
Test().cat()
P.S。没有进口任何东西。
答案 0 :(得分:1)
基本上,当从类内部进行调用时,我只想执行cat方法的一部分。就是这样。
听起来你的功能太多了,你最好把它分成不同的功能
def dog(self):
#Call from inside of the class
pet_cat()
chase_cat()
def cat(self):
feed_cat()
pet_cat()
chase_cat()
return
def feed_cat():
pass
def pet_cat():
pass
def chase_cat():
pass
在回答你的直接问题时,你不仅可以运行部分方法 - 这是一个坏主意,所有可能允许你这样做的选项都是肮脏的黑客
答案 1 :(得分:0)
不导入,只需将调用者作为参数传递:
class Test():
def dog():
self.cat(self)
def cat(caller=None):
if caller == self:
print "inner call"
else:
print "outside call"