一、 使用内置方法和修饰器方法获取类名、函数名

1. 外部获取

从外部的情况好获取,可以使用指向函数的对象,然后用__name__属性。

def a():
pass
a.__name__

或者

getattr(a,'__name__')

2. 内部获取

1)使用修饰器的方法

使用修饰器就可以对函数指向一个变量,然后取变量对象的__name__方法。

def timeit(func):
def run(*argv):
print func.__name__
if argv:
ret = func(*argv)
else:
ret = func()
return ret
return run @timeit
def t(a):
print a
t(1)

2)使用sys模块的方法

def a():
print sys._getframe().f_code.co_name

二、 使用inspect模块动态获取当前运行的函数名

动态获取当前运行的函数名很方便,特别是对于一些debug系统来说

import inspect

def get_current_function_name():
return inspect.stack()[1][3]
class MyClass:
def function_one(self):
print "%s.%s invoked"%(self.__class__.__name__, get_current_function_name())
if __name__ == "__main__":
myclass = MyClass()
myclass.function_one()

Python学习总结11:获取当前运行类名和函数名的更多相关文章

  1. python 动态获取当前运行的类名和函数名的方法

    一.使用内置方法和修饰器方法获取类名.函数名 python中获取函数名的情况分为内部.外部,从外部的情况好获取,使用指向函数的对象,然后用__name__属性 复制代码代码如下: def a():pa ...

  2. python学习笔记(11):文件的访问与函数式编程

    一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 whil ...

  3. python学习笔记11(函数二): 参数的传递、变量的作用域

    一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...

  4. python使用内置方法和修饰器方法获取类名、函数名

    1. 外部获取 从外部的情况好获取,可以使用指向函数的对象,然后用__name__属性. def a(): pass a.__name__ 或者 getattr(a,'__name__') 2. 内部 ...

  5. Python学习随笔:获取当前主机名和用户名的方法

    在Python中,要获取当前主机的主机名和登录用户名很简单: 使用os.getlogin():返回当前登录用户名 使用socket.gethostname():返回当前机器主机名 代码如下: > ...

  6. PHP获取当前类名、函数名、方法名

    PHP获取当前类名.方法名  __CLASS__ 获取当前类名  __FUNCTION__ 当前函数名(confirm)  __METHOD__ 当前方法名 (bankcard::confirm) _ ...

  7. Python学习之路基础篇--11-12Python基础,函数的装饰器

    对于装饰器来说,就是在不改变函数的调用的情况下,对函数的前后增加了些许功能,这完全符合函数的 开放封闭 原则.装饰器的本质 其实就是一个闭包函数. 这是一个装饰器的步骤图 ret = func(*ar ...

  8. Python学习之路基础篇--10Python基础,函数进阶

    1 命名空间 对于Python 来说命名空间一共有三种 1 内置命名空间 —— Python 解释器 就是Python 解释器一启动就可以使用的名字,储存在内置命名空间中.内置的名字在启动解释器的时候 ...

  9. Python学习笔记之map、zip和filter函数

    这篇文章主要介绍 Python 中几个常用的内置函数,用好这几个函数可以让自己的代码更加 Pythonnic 哦 1.map map() 将函数 func 作用于序列 seq 的每一个元素,并返回处理 ...

随机推荐

  1. shell常用代码

    grep -lr 'hello' /usr/share/* #在/usr/share目录下查找包含hello的字符串 NOW_DATE=`date "+%Y%m%d%H%M%S"` ...

  2. js 定时跳转, 格式化字符串时间

    效果 1.js中将一字符串表示的系统时间转换为Date时间对象 //js中将一串字符串转换为date类型,主要是先过滤字符,然后分割开 function parseToDate(strTime) { ...

  3. ubuntu 64bit arm-linux-gcc: No such file or directory 解决

    通过下面这个解决 ubuntu 64bit  arm-linux-gcc: No such file or directory 安装 sudo apt-get install lsb-core解决 h ...

  4. C++位操作符总结

    #include <stdio.h> #include <memory.h> #include <malloc.h> #define MaxBinLength 16 ...

  5. QRadioButton

    #include "dialog.h" #include "ui_dialog.h" #include <QtCore> #include < ...

  6. QFile文件操作-QT

    #include <QCoreApplication> #include<QFile> #include<QString> #include<QDebug&g ...

  7. vb 修改数据库

    Dim rscode As New ADODB.Recordset ................... Set RsCode = zwpub.DataMdb.DbConnect.Execute(& ...

  8. 【转】为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?

    为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment? 转自:http://www.apkbus.com/android- ...

  9. win7系统中ftp服务器搭建方法(多图)

    一.创建FTP站点 1.打开:控制面板---系统和安全---管理工具---Internet 信息服务 2. 建站:右键点击网站---添加FTP站点 3. 输入FTP 站点名称---选择你的 FTP 目 ...

  10. Interview Check If n Is A Perfect Square

    Check if a given number is a perfect square with only addition or substraction operation. eg. 25 ret ...