1

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

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

我不想一直在我的代码中键入isdigit(),例如n.isdigit(),我想将它分配给一个变量t = 'isdigit()',然后键入n.t. 这不起作用,那么有没有不输入整个命令的替代方法?

4

3 回答 3

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

于 2012-10-06T15:05:09.700 回答
2

虽然你可以用类似的东西开始你的代码t = str.isdigit然后检查t(n)(你不能让它成为字符串的属性,因为你不能从外部拦截属性查找),但这实际上是一个非常糟糕的主意。虽然打字速度更快,但阅读起来要困难得多。这会让你(或其他任何人)在几周后处理代码。这并不是因为对不必要的细节进行抽象是不好的(事实并非如此),这个片段根本不够复杂,无法从抽象中受益。任何可读的名称至少与 一样长isidigt,因此您实际上无法赢得任何可读性。

于 2012-10-06T15:06:41.603 回答
0

您可以创建一个函数:

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

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

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

于 2012-10-06T15:23:44.243 回答