首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在python3中有没有从字符串定义函数名的方法?

在Python3中,可以使用globals()函数和setattr()函数来动态定义函数名。

首先,globals()函数返回一个全局变量的字典,其中包含了当前所有的全局变量和函数。我们可以通过该函数获取到全局变量的字典。

然后,使用setattr()函数可以将一个函数对象赋值给一个字符串作为函数名的全局变量。这样就可以通过字符串来定义函数名。

下面是一个示例代码:

代码语言:txt
复制
def hello():
    print("Hello, world!")

# 定义一个字符串作为函数名
function_name = "hello"

# 使用globals()函数获取全局变量的字典
globals_dict = globals()

# 使用setattr()函数将函数对象赋值给字符串作为函数名的全局变量
setattr(globals_dict, function_name, hello)

# 调用通过字符串定义的函数
hello()

输出结果为:

代码语言:txt
复制
Hello, world!

需要注意的是,动态定义函数名可能会导致代码可读性和维护性的降低,因此在实际开发中应谨慎使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python3 面向对象

Python3 面向对象 python是一门面向对象语言,在python中有一句话:一切都是对象 ---- 面向对象简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。...它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。...self代表类的实例,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。... 要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法。...print('drink') p = People() p.eat() hasattr(p,'eat') # 找这个对象p中有没有eat这个方法 getattr(p,'eat') # 在p中找到eat

48820
  • 编程好习惯

    一、python2与python3的区别 1、性能 python3.x起始比python2.x效率要低,但是python3.x有极大的优化空间,效率正在追赶,目前已经不差多少 2、编码 python3....if 1: pass 2、命名 除非在lamdba函数中,否则不要使用单字母的变量名,但是即使在lamdba函数中变量名也要尽可能有意义 包名、模块名、函数名全部使用小写,单词使用下划线链接...类名、异常名使用首字母大写的方法,异常名结尾加Error或者Warning 全局变量尽量使用大写,同一类型的全局变量要加同一的前缀,单词用下划线链接 自定义的变量、函数名等不要与标准库名冲突 函数名必须有动词...数学运算符、比较运算符、逻辑运算符、位运算符 =的注意事项:用于指示关键字参数或默认参数值时,不要添加空格 5、换行 适当添加换行 函数间 顶级函数空间空2行 类的方法空1行...文件结尾留空一行 6、import 不要使用from xxx import * 导入顺序(标准库、第三方、自定义) 标准库 第三方库 自定义库 单行不要导入多个库 模块内用不到的不要去import

    22520

    Python 类与继承

    在定义时,使用 @classmethod 装饰器进行修饰,同时需要指定传入第一个参数为 cls(命名可以自定义),在调用过程中,可以直接通过 类名.方法名 进行调用,也可以在实例化后通过 实例名.方法名...super() 用来调用父类(超类)的方法,若父类和超类中有同名方法,优先调用父类 Python2 用法:super(父类/超类名, self).函数名 Python3 用法:super().函数名...该方法可以自定义返回值,若不定义,则在方法执行结束后触发 AttributeError __getattribute__(self, name) self:函数中固定第一个参数 name:参数名 class...python 中有许多不需要引用就能直接使用的函数,例如 open 、str、chr 等等,这些函数都包含在内建模块中,在 python2/3 中对于内建模块,有不同的表示方法 python2 在 python2...__dict__ 调用方法也很简单 __builtin__.str(1) python3 在 python3 中,内建模块用 builtins 表示,同样也要先引入才能查看,各种查看方法与调用方法与 python2

    73340

    Python 函数

    中文的“函数”一词由清朝数学家李善兰译出。其《代数学》书中解释:“凡此变量中函(包含)彼变量者,则此为彼之函数”。...函数的定义 在 python 中函数的定义格式如下 def 函数名称(参数列表): 函数体 如上所示在 python 中定义一个函数需要使 def 语句,一次写出函数名称、括号、括号中的参数列表和冒号...从函数的调用中我们可以看书,当我们需要计算一个数的平方时在调用函数时可以直接省略 n 的值。在我们需要计算的其他次方时又可以通过输入 n 的值来获取正确的结果。...而关键字参数允许你传入 0 个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个字典。在函数参数的前面增加一个 ** 即可将该参数转变为关键字参数。 #!...x)test() print('x =', x) 以上代码运行结果如下: x = 5 x = 3 从输出结果可以看出,在函数体内部对变量 x 进行赋值,函数体外部的变量 x 的值也发生了改变。

    65220

    【Django】 Python Web 框架基础

    ,在开发阶段用于管理整个项目的开发运行的调式 manage.py 包含项目管理的子命令,如: python3 manage.py runserver 启动服务 python3 manage.py startapp...fragment(信息片断) 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用 fragment 直接定位到某一名词解释。...HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法(最常用) HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法...对象 HttpRequest属性 path_info: URL字符串 method:字符串,表示HTTP请求方法,常用值:‘GET’、‘POST’ GET:QueryDict查询字典的对象,包含查询字符串的所有数据...HTTP状态码分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。

    2.1K20

    最全总结 | 聊聊 Python 命令行参数化的几种方式!

    在日常编写 Python 脚本的过程中,我们经常需要结合命令行参数传入一些变量参数,使项目使用更加的灵活方便 本篇文章我将罗列出构建 Python 命令行参数的 4 种常见方式 它们分别是: 内置 sys.argv...,--arg1 用于指定参数名称,-a1 代表 dest 目标变量值(简写) ... # 设置3个参数 # 参数1:arg1,整型,非必须传入参数 # 参数2:arg2,字符串,非必须传入参数,包含默认值...args % python3 2_argparse.py -a3 所有命令行参数为: 命令行参数名:arg1,参数值:None 命令行参数名:arg2,参数值:xag 命令行参数名:arg3,参数值...% python3 2_argparse.py -a1 -a2 -a3 所有命令行参数为: 命令行参数名:arg1,参数值: 命令行参数名:arg2,参数值: 命令行参数名:arg3,参数值:...root --pwd 123456 --db mysqldb 5. click click 作为第三方依赖库,它为命令行工具封装了大量的方法,可以非常方便实现命令行参数 项目地址:https://

    2.4K20

    Python 3 基础语法入门

    模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。...常见的使用方法 import 模块名from 模块名 import 模块中的函数名 上面代码中就是使用的第2种方法,国际惯例用第2种,显得专业 万能的print函数 print() 方法用于打印输出...默认值是换行符 \n,我们可以换成其他字符串。 file -- 要写入的文件对象。...如上面代码中的第4行与第6行就定义了两个变量,赋值为0 顺带讲一下数据类型(后期详细讲解) Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表)...Tuple(元组) Set(集合) Dictionary(字典) Python3 的六个标准数据类型中: 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组); 可变数据

    58830

    Python基础

    在 Python 中可以使用 一对双引号 " 或者 一对单引号 ' 定义一个字符串 虽然可以使用 \" 或者 \' 做字符串的转义,但是在实际开发中: 如果字符串内部需要使用 ",可以使用 ' 定义字符串...多值参数 python 中有 两种 多值参数: 参数名前增加 一个 * 可以接收 元组 参数名前增加 两个 * 可以接收 字典 一般在给多值参数命名时,习惯使用以下两个名字 *args —— 存放 元组...,如果有多个缺省参数,需要指定参数名= def demo(num,num_list = True): 多值参数案例 —— 计算任意多个数字的和 定义一个函数 sum_numbers,可以接收的 任意多个整数...查询 python3 解释器所在路径 $ which python3 修改要运行的 主 python 文件,在第一行增加以下内容(文件路径) #!.../cards_main.py 快捷键 函数的文档注释 Ctrl + Q 在函数定义的下方写注释

    1.4K30

    php函数基础(一)

    2> 浮点型开头的字符串+数字=数字 3>字符串开头的串+字符串开头的串=0 强类型参数定义:为参数列表中的参数指定类型,如果如果传入的数据类型不匹配,则抛出TypeError...如果是从函数定义的外面来呼叫此函数,则func_get_arg( )将会产生警告。...其中,func_get_arg( )从参数列表返回项目,其语法:int func_get_arg (int arg_num),传回定义函数的参数列表的第arg_num个参数,其参数从0开始。...func_get_args()函数和func_get_arg()函数的区别在于,func_get_args()函数传回一数组,数组的各个元素相当于是目前使用者定义函式的参数列的数目。...$msg; }; //必须加分号 $msg = "lxw22"; $bibao(); 输出:lxw 方法一:定义在use之后按照引用传递调用参数; 方法二和三比较说明: use使用的变量在定义闭包函数之前先声明好

    91140

    Python3 函数

    任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号 : 起始,并且缩进。...---- 语法 Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表): 函数体 默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。.../usr/bin/python3 # 定义函数 def printme( str ): # 打印任何传入的字符串 print (str) return # 调用函数 printme("我要调用用户自定义函数...python 函数的参数传递: 不可变类型:类似 C++ 的值传递,如整数、字符串、元组。如 fun(a),传递的只是 a 的值,没有影响 a 对象本身。...使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。 以下实例在函数 printme() 调用时使用参数名: 实例(Python 3.0+) #!

    80620

    图解python | 函数

    [一个函数实例] (1)语法 Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表): 函数体 默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。...[定义函数 & 调用函数] 如下代码调用了 print_myself() 函数: # 定义函数 def print_myself( str ): # 打印任何传入的字符串 print (str...python 函数的参数传递: 不可变类型:类似 C++ 的值传递,如整数、字符串、元组。如 func(a),传递的只是 a 的值,没有影响 a 对象本身。...以下实例在函数 print_myself() 调用时使用参数名: def print_myself( str ): "打印任何传入的字符串" print(str) return #...以下代码(在线python3环境)中如果没有传入 age 参数,则使用默认值: def print_info( name, age = 35 ): "打印任何传入的字符串" print ("

    72351

    Python 基础语法

    多行注释''' 变量 Python 中的变量: Python 中的变量是弱类型的,与 Java 不同,Java 在定义变量是需要指定数据类型,而 Python 直接声明就可以了,Python 会根据变量中的数据...也可以使用 type(变量名称),来查看变量的类型。 标识符与关键字 标识符 标识符:开发人员在程序中自定义的一些符号和名称,标示符是自己定义的,如变量名 、函数名等。...Python3 把 print 方法当成了一个函数,因为这种方法对 Python2 和 Python3 都通用,所以我们采用这种方式。...也可以指定 print 在末尾输出的字符:print("abc",end="") 输入 在 Python2 中有两个输如函数: raw_input():会把用户输入的任何值都作为字符串来对待。...在 Python3 中没有 raw_input() 函数,只有 input(),并且 Python3 中的 input() 与 Python2中的raw_input() 功能一样。

    1.1K50

    PE文件详解(七)

    一般在dll中保存函数名称以及它的地址,当某个程序需要调用dll中的函数时,如果这个dll在内存中,则直接找到对应函数在内存中的位置,并映射到对应的虚拟地址空间中,如果在内存中没有对应的dll,则会先通过...前者指向函数名字符串地址表。 这个地址表是一个双字数组,数组中的每一项指向一个函数名称字符串的RVA。...数组项目与文件名地址表中的项目一一对应,项目值代表函数入口地址表的索引,这样函 数名称与函数入口地址关联起来。...从 AddressOfNames 字段指向得到的函数名称地址表的第一项开始,在循环中将每一项定义的函数名与要查找的函数名相比较,如果没有任何一 个函数名是符合的,表示文件中没有指定名称的函数...如果某一项定义的函数名与要查找的函数名符合,那么记下这个函数名在字符串地址表中的索引值,然后在 AddressOfNamesOrdinals 指向的数组中以同样的索引值取出数组项的值,我们这里假设这个值是

    98710

    图解python | 面向对象编程

    它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 方法:类中定义的函数。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。...,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。...例如(代码可以在在线python3环境中运行) class Person: #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问... 需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。...在类内部的方法中可以使用,使用方法为 self.__private_attrs。 (2)类的方法 在类的内部定义的成员方法,必须包含参数 self,且为第一个参数,self 代表的是类的实例。

    61541

    使用pyh生成HTML文档

    在使用的时候发现在Python3中有些问题,网上很多地方都没有提到,因此我在这将它的使用以及我遇到的问题和解决方案整理出来供大家参考 本文主要参考pyh中文文档 下载的样本也是该文中提到的地址...,也就是说此时产生的HTML代码就是在头部加上一个title标签并将这个字符串作为文本值 然后我们可以addCSS方法或者addJS方法引入外部的js文件或者css文件(调用这两个函数将在HTML的头部产生一个引入的代码...,对于那种在body中添加style代码的我暂时没有找到什么办法) 然后就是创建标签对象,对应标签类的名字所与在HTML中的对应的名称相同,传入对象的参数就是标签中的属性,除了class属性对应的参数名称是...cl外,其余的参数名称与在HTML中的属性一一对应。...在Python2中存在Unicode字符串和普通字符串的区别,但是在Python3中所有字符串都默认是Unicode的,它取消了关于Python2中unicode函数,这里报错主要是这个原因,因此我们定位到报错的地方

    2K10
    领券