3 回答

TA贡献1856条经验 获得超5个赞
now 不是python中的关键字,因此您可以将其用作变量名。
有可能干扰datetime.datetime.now()吗?不。
详细说明:也没有命名为now()的函数;它与datetime对象相关联(这是一个类方法),您将始终需要datetime.now()使用它。因此,它始终与名为的变量区分开now。
仅当您按以下方式分配时:
now = datetime.datetime.now
在这里,名为的新变量now等于datetime.now() 函数(而不是函数的结果)。但是在这种情况下,您要对此工作完全负责。即使那样,更改now为其他内容也不会更改datetime.now。
使用,但是
now = datetime.datetime.now()
将函数调用的结果分配给变量now(而不是函数本身),并且该函数保持原样。
值得注意的是,是否应该覆盖内置函数。这是Python 3.7中的内置函数的列表。
您可以为每个名称分配一个值,但实际上您会失去该功能*,以后可能会遇到麻烦。例如:
str = "Hello there"
a = 123
<more code>
value = str(a) # causes a TypeError, because we re-assigned str
因此,请尽量避免这种情况(这list = [1,2,3]是应该避免的另一个常见错误)。
但now()不是内置函数,如上所述。
*即使重新分配后,也有一些方法可以检索原始的内置函数,但这不在本主题的讨论范围之内。

TA贡献1773条经验 获得超3个赞
以下是python中使用的关键字,此外,您还可以使用所需的任何关键字
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield
我希望回答你的问题

TA贡献1793条经验 获得超6个赞
import this 说
命名空间是一个很棒的主意-让我们做更多这些吧!
now即使有一个调用的函数,您也可以将其用作变量,datetime.datetime.now()因为该函数位于另一个名称空间中。每个模块(例如module datetime)都是一个名称空间,并且该模块(例如datetime.datetime)中的每个类或类型都是一个单独的名称空间。即使在函数内部,您也可以创建一个与周围代码中定义的名称相同的局部变量:
a = 1
def f(x):
a = x + 2
print (a)
f(4) # prints 6
print (a) # prints 1
尽管这样做可能会使您的代码读者(包括您自己)感到困惑。
添加回答
举报