如何将isdigit()命令设置为变量?

时间:2012-10-06 15:02:46

标签: python variables types

我是python的新手,但我很快就掌握了基础知识并决定在我还在学习的时候开始尝试制作一个程序,因为我通过实际操作来学习。

所以我在python中创建一个程序来添加多项式,我需要使用isdigit()命令查看解析器中的字符是否为数字im。

我不想在isdigit()等代码中始终键入n.isdigit(),而是将其分配给变量t = 'isdigit()',然后键入n.t。这不起作用,那么是否可以选择不输入整个命令?

3 个答案:

答案 0 :(得分:2)

在给定实例的情况下,您必须创建一个自定义函数或lambda来为您调用isdigit()方法:

t = lambda n: n.isdigit()

# ...

t(n)  # returns the result of `n.isdigit()`

或者您可以存储对类方法的引用:

t = str.isdigit

# ...

t(n)  # returns the result of `str.isdigit(n)`

n的类型为str

语法n.t 总是会在t上查找n作为属性,并且永远不会查询本地变量t

答案 1 :(得分:2)

虽然您可以使用类似t = str.isdigit的内容启动代码,然后检查t(n)(您无法将其设置为字符串属性,因为您无法拦截来自外部的属性查找),实际上是一个非常糟糕的主意。虽然打字速度更快,但阅读起来却要困难得多。这将在几周后咬你(或其他任何人)工作代码。这不是因为抽象不必要的细节是坏的(事实并非如此),这个片段并不复杂到足以从抽象中受益。任何可读的名称至少与isidigt一样长,因此您实际上无法获得任何可读性。

答案 2 :(得分:0)

你可以创建一个函数:

def t(n):
    if n.isdigit():
        return True
    else:
        return False

a = "a5b"
print t(a[1])

我不知道这是不是你要找的。