我可以在 python 中命名一个变量 "now"
Can I name a variable "now" in python
这似乎是一个幼稚的问题,但到目前为止我在网络上没有找到任何答案,我不想在我的代码中造成任何不一致的行为。
我可以在 python 代码中命名变量 now
吗?有一个名为 now()
的函数,这就是我怀疑的原因。
示例:
now = datetime.datetime.now()
是否可以将其视为存储 datetime.datetime.now()
返回值的任何普通变量?或者它可以在任何时候表现不同吗?
它将作为 Varibale
from datetime import datetime
now = datetime.now()
now
输出:
datetime.datetime(2018, 8, 3, 16, 36, 54, 182551)
"Now" 变量的类型是
type(now)
变量的数据类型是
datetime.datetime
由此我们可以说现在将作为简单变量工作
以下是 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
希望能回答你的问题
now
不是python中的关键字,所以可以作为变量名使用。
有没有机会干扰datetime.datetime.now()
?号
详细说明:也没有名为 now() 的函数;它绑定到 datetime
对象(它是一个 class 方法),您将始终需要 datetime.now()
才能使用它。所以它总是与名为 now
.
的变量区分开来
只有如果你按如下方式赋值:
now = datetime.datetime.now
这里,名为 now
的新变量等于 datetime.now()
函数 (不是函数的结果)。但在这种情况下,您对这项任务负全部责任。即使这样,将 now
更改为其他内容也不会更改 datetime.now
.
使用,但是
now = datetime.datetime.now()
将函数调用的结果赋值给变量now
(不是函数本身),函数保持原样。
值得关注的是,是否应该覆盖内置函数。 This is the list of built-in functions in 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()
不是内置函数,如上所述。
* 有一些方法可以检索原始内置函数,即使在重新分配后也是如此,但这超出了本主题的范围。
import this
说
Namespaces are one honking great idea -- let's do more of those!
即使有一个名为 datetime.datetime.now()
的函数,您也可以将 now
用作变量,因为它位于不同的命名空间中。每个模块(如模块 datetime
)都是一个命名空间,每个 class 或该模块内的类型(如 datetime.datetime
)都是一个单独的命名空间。即使在函数内部,您也可以创建一个与周围代码中定义的名称相同的局部变量:
a = 1
def f(x):
a = x + 2
print (a)
f(4) # prints 6
print (a) # prints 1
尽管这样做可能会使代码的读者(包括您自己)感到困惑。
这似乎是一个幼稚的问题,但到目前为止我在网络上没有找到任何答案,我不想在我的代码中造成任何不一致的行为。
我可以在 python 代码中命名变量 now
吗?有一个名为 now()
的函数,这就是我怀疑的原因。
示例:
now = datetime.datetime.now()
是否可以将其视为存储 datetime.datetime.now()
返回值的任何普通变量?或者它可以在任何时候表现不同吗?
它将作为 Varibale
from datetime import datetime
now = datetime.now()
now
输出:
datetime.datetime(2018, 8, 3, 16, 36, 54, 182551)
"Now" 变量的类型是
type(now)
变量的数据类型是
datetime.datetime
由此我们可以说现在将作为简单变量工作
以下是 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
希望能回答你的问题
now
不是python中的关键字,所以可以作为变量名使用。
有没有机会干扰datetime.datetime.now()
?号
详细说明:也没有名为 now() 的函数;它绑定到 datetime
对象(它是一个 class 方法),您将始终需要 datetime.now()
才能使用它。所以它总是与名为 now
.
只有如果你按如下方式赋值:
now = datetime.datetime.now
这里,名为 now
的新变量等于 datetime.now()
函数 (不是函数的结果)。但在这种情况下,您对这项任务负全部责任。即使这样,将 now
更改为其他内容也不会更改 datetime.now
.
使用,但是
now = datetime.datetime.now()
将函数调用的结果赋值给变量now
(不是函数本身),函数保持原样。
值得关注的是,是否应该覆盖内置函数。 This is the list of built-in functions in 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()
不是内置函数,如上所述。
* 有一些方法可以检索原始内置函数,即使在重新分配后也是如此,但这超出了本主题的范围。
import this
说
Namespaces are one honking great idea -- let's do more of those!
即使有一个名为 datetime.datetime.now()
的函数,您也可以将 now
用作变量,因为它位于不同的命名空间中。每个模块(如模块 datetime
)都是一个命名空间,每个 class 或该模块内的类型(如 datetime.datetime
)都是一个单独的命名空间。即使在函数内部,您也可以创建一个与周围代码中定义的名称相同的局部变量:
a = 1
def f(x):
a = x + 2
print (a)
f(4) # prints 6
print (a) # prints 1
尽管这样做可能会使代码的读者(包括您自己)感到困惑。