如何编写像islower,isupper这样的方法?

时间:2017-10-08 19:25:04

标签: python python-2.7 python-3.x class methods

我想写一个方法,我可以使用字符串,就像我们使用<table> <col /><col /><col /> <tr> <th class="col">First Name</th> <th class="col">Middle Name</th> <th class="col">Last Name</th> </tr> <tr> <td>Peter</td> <td>Jeffery</td> <td>Griffin</td> </tr> <tr> <td>Lois</td> <td>Marie</td> <td>Griffin</td> </tr> <tr> <td>Margie</td> <td>Ann</td> <td>Thatcher</td> </tr> </table> 返回"word".isupper,“word”.islower return False,所以我想定义一个类并希望像True

一样使用

所以,如果我有一个特殊字符列表:

"word".isspecial()

我希望如果我有一个单词,我可以检查像“)(”。method(),它返回True,因为我们使用“string”.islower()返回True

我知道我可以使用简单的循环和special=["&","*",")("] 运算符执行此操作,但我想知道如何执行in

我尝试的是越野车:

")(".method()

1 个答案:

答案 0 :(得分:0)

你可以编写一个函数来做你想做的事情:

import string

special_set = set(string.punctuation)

def isspecial(s):
    return all(c in special_set for c in s)

print(isspecial(")("))
print(isspecial(")(*)(&)(*&)*&"))
print(isspecial(")(*)(&)(*&)*&x"))

这将按预期输出:

True
True
False

注意我已经使用string.punctuation来构建一组&#34;特殊字符&#34;。如果您愿意,可以手动定义此设置。

真的,这是Pythonic做你想做的事的方式 - 没有理由不得不做一个方法。如果您真的坚持,可以查看this问题以获取更多信息,但要注意它会变得混乱。