| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 237 人关注过本帖
标题:python3有没有使用变量代替函数名的方法
只看楼主 加入收藏
eakit67
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2019-1-7
结帖率:0
  已结贴   问题点数:20  回复次数:7   
python3有没有使用变量代替函数名的方法
python中有没有方法实现下面的代码?
就是用变量代替函数名,使用变量名也能实现函数的功能。


def test1():
    print("----1----")

local_name = test1

local_name()
2019-01-07 22:18
外部三电铃
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:那一年
等 级:版主
威 望:42
帖 子:1837
专家分:6544
注 册:2007-12-17
  得分:10 
没问题啊,你的代码完全可以正常运行
下面是在ipython里测试运行的:
mycomputer me$ ipython
Python 3.7.1 (default, Nov  4 2018, 00:41:56)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.1.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: def test1():
   ...:     print("----1----")
   ...:
In [2]: test1()
----1----
In [3]: local_name = test1
In [4]:  local_name()
----1----
In [5]:


那一年,苍井空还是处女
2019-01-07 22:23
eakit67
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2019-1-7
  得分:0 
回复 2楼 外部三电铃
代码错了。
应该是下面的。
加个双引号,字符串。。
def test1():
    print("----1----")

local_name = "test1"

local_name()
2019-01-07 23:44
外部三电铃
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:那一年
等 级:版主
威 望:42
帖 子:1837
专家分:6544
注 册:2007-12-17
  得分:0 
def test1():
    print("----1----")

local_name = eval("test1")

local_name()

那一年,苍井空还是处女
2019-01-07 23:50
eakit67
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2019-1-7
  得分:0 
有这样一个需求,实现不了。
程序代码:

request = "/test1.py"

urls = [
    ("/test1.py", "test1"),
    ("/test2.py", "test2"),
]

def test1():
    print("----1----")
   
def test2():
    print("----2----")

   
for url, handler in urls:
    if request == url:
        handler()
2019-01-07 23:55
外部三电铃
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:那一年
等 级:版主
威 望:42
帖 子:1837
专家分:6544
注 册:2007-12-17
  得分:0 
这很容易实现,看最后一行:
程序代码:
request = "/test1.py"

urls = [
    ("/test1.py", "test1"),
    ("/test2.py", "test2"),
]

def test1():
    print("----1----")
  

def test2():
    print("----2----")

  

for url, handler in urls:
    if request == url:
        eval(handler)()


那一年,苍井空还是处女
2019-01-08 00:01
eakit67
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2019-1-7
  得分:0 
回复 6楼 外部三电铃
可以了。十分感谢
2019-01-08 00:09
春暖亦寒
Rank: 2
等 级:论坛游民
帖 子:1
专家分:10
注 册:2019-1-13
  得分:10 
回复 楼主 eakit67
python3本身就支持这种的啊,你的这种写法就可以运行
6 天前 21:44







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041558 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved