में हूँ के नाम पाने के लिए वहाँ इतना है कि एक रास्ता है निम्नलिखित कोड:पायथन: कैसे * पूर्ण * समारोह मैं
import traceback
def log(message):
print "%s: %s" %(traceback.extract_stack()[0:-1][-1][2], message)
def f1():
log("hello")
class cls(object):
def f1(self):
log("hi there")
f1()
mycls = cls()
mycls.f1()
प्रदर्शित करता है:
f1: hello
cls.f1: hi there
बजाय
:
f1: hello
f1: hi there
?
मैं जुलिएन
मॉड्यूल का उपयोग करने के लिए 'का निरीक्षण' की कोशिश की लेकिन सफल नहीं हुआ था ...
संपादित करें:
यहां मुद्दा यह पुनः प्राप्त करने में सक्षम हो 'लॉग इन करें' समारोह के लिए है इसके कॉलर अपने नाम पर (ट्रेसबैक, निरीक्षण, या किसी भी आवश्यक साधन का उपयोग कर)।
मैं 'लॉग' फ़ंक्शन में 'संदेश' से कक्षा का नाम, या कुछ और नहीं पारित करना चाहता हूं।
क्या आप ['__qualname__'] (https://www.python.org/dev/peps/pep-3155/) का उपयोग कर सकते हैं? – mgilson
https://stackoverflow.com/questions/10973362/python-logging-function-name-file-name-line-number-using-a-single-file –
@mgilson ने प्रश्न में python2.x वाक्यविन्यास दिया ' अनुमान नहीं है? –