是否应将仅包含空格的字符串视为';空的';在Python中(验证目的)

是否应将仅包含空格的字符串视为';空的';在Python中(验证目的),python,string,validation,spaces,Python,String,Validation,Spaces,我目前正在更新一年前的输入验证库,在查看IsEmpty()验证器时,我注意到它看到只有空格的字符串不是空的,如下所示: s = ' ' 这当然是正常的,因为Python将带空格的字符串视为包含值,而不是计算结果为“无”的真正空字符串 我的问题是,有人能想出一个原因,为什么我不应该让一个带空格的字符串计算为空,以用于我的验证库 我很感激你的想法 编辑:我正在更新此内容,以澄清此问题不打算涵盖特定领域的应用程序。这个库是开源的,我正在为社区的利益进行更新。因此,这个问题更像是一项调查,目的是听取关

我目前正在更新一年前的输入验证库,在查看IsEmpty()验证器时,我注意到它看到只有空格的字符串不是空的,如下所示:

s = ' '
这当然是正常的,因为Python将带空格的字符串视为包含值,而不是计算结果为“无”的真正空字符串

我的问题是,有人能想出一个原因,为什么我不应该让一个带空格的字符串计算为空,以用于我的验证库

我很感激你的想法


编辑:我正在更新此内容,以澄清此问题不打算涵盖特定领域的应用程序。这个库是开源的,我正在为社区的利益进行更新。因此,这个问题更像是一项调查,目的是听取关于如何实现(以库的方式)以最好地服务于Python开发人员及其验证需求的建议。我选择了两种方法来为消费程序提供灵活性。

这是一个依赖于域的问题-它取决于每个应用程序

我建议使用两个函数,一个默认为一种方式,另一个默认为另一种方式,每个函数都有一个关键字参数来选择另一种行为

有人能想出一个原因,为什么我不应该让一个带空格的字符串计算为空,以用于我的验证库

在不做某件事的理由是相关的之前,你需要一个做某事的理由

除非有理由,否则随意执行空间修剪之类的操作是没有任何意义的


额外操作~=额外的代码行~=额外的CPU时间等。

取决于使用字符串的代码是否会做出这样的区分。在大多数情况下,如果希望用户在表单中填写字段(例如:姓名或电子邮件),则字段不应为空,并且可能会删除空格,因此字符串将被视为空。你能描述一下你的验证库的目标/用途吗?如果你想让空间变空,只需使用
myinput.strip()
。这是一个奇怪的问题,因为这是一个只有你才能回答的问题。您知道应用程序的需求,我们不知道。投票结束不是一个真正的问题。一个“真正的空字符串”的计算结果不是
None
,它的计算结果是
,我只需要第一句话。。。因为它是特定于领域的,你可能不想两种方法都用,而是一种或另一种方法,所以只要选择适当的(+1),JoranBeasley我会有两种方法,因为它是特定于领域的-这样,程序员可以选择代表他们正常情况的方法,然后根据需要使用开关对其进行更改。同意此方法。我发布这个问题的原因并不是因为我在寻找一个特定于领域的答案,因为我正在更新的库是开源的,我希望它作为gen purp库对很多人有用。有两个独立的函数是建议的最灵活的方法,因此我接受这个解决方案。我正在更新的库是Konval(),我将在几天后合并我的(现在重要的)更新。谢谢大家的意见!同意。我可以想出几个让空字符串验证为空的原因。想到的一点是,它为客户端程序员节省了空间修剪的麻烦。另一方面,您可能希望通过验证器允许一个只有空格的字符串,并让数据库代码稍后决定如何处理该值。