blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS] においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

pythonでソースファイル名と関数名と行数を出力

pythonだとエラー出力がわかりやすいので、今まであまり困らなかったのですが、調べて見ました。

inspect_test.py

inspectというモジュールを使えば良いみたいです。 ファイル名と関数名と行数をタプルで返す関数filename_funcname_linenoは以下の様になります。

import inspect

def filename_funcname_lineno():
    funcname = inspect.currentframe().f_back.f_code.co_name
    filename = inspect.currentframe().f_back.f_code.co_filename
    lineno = inspect.currentframe().f_back.f_lineno
    return filename, funcname, lineno

def hoge():
    print "foo"
    print filename_funcname_lineno()
    print "bar"

if __name__ == "__main__":
    hoge()

上記を実行すると以下のように出力されます。

foo
('inpect_test.py', 'hoge', 11)
bar

参考URL