计算年龄的程序给出有关 getset_descriptor 的错误?

2024-01-12

我正在尝试编写一个非常简单的Python程序来计算某人的年龄,我认为理论上它应该可以工作,但是每次我尝试运行它时,它都会抛出以下错误:

What year were you born in? 2005
Traceback (most recent call last):
  File "python", line 5, in <module>
TypeError: unsupported operand type(s) for -: 'getset_descriptor' and 'int'

我尝试过转动datetime.year and (year)(同样的事情)转化为整数。它有效,但没有什么区别,因为两者都已经是整数了。这是我的代码:

from datetime import datetime
year = datetime.year
born = input("What year were you born in?")
born = int(born)
end = year - born
print(end)

year = datetime.year不给你当前年份。它给你一种无拘无束的描述符对象 https://docs.python.org/3/howto/descriptor.html相反(getset_descriptor在你的错误中):

>>> datetime.year
<attribute 'year' of 'datetime.date' objects>
>>> type(datetime.year)
<class 'getset_descriptor'>
>>> datetime.year - 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'getset_descriptor' and 'int'

不要太担心这里对象的确切类型,这只是创建内置不可变类型的实例所需的实现细节,例如datetime工作。这只是意味着你没有instance of the datetime类型,所以没有year该实例的值。

如果您想要当前年份,请使用datetime.now().year:

year = datetime.now().year

datetime.now() https://docs.python.org/3/library/datetime.html#datetime.datetime.now给你一个datetime instance,代表当前时间和日期。该实例有一个有效的year属性。

你也可以使用datetime.date.today() https://docs.python.org/3/library/datetime.html#datetime.date.today当然:

>>> from datetime import datetime, date
>>> datetime.now()
datetime.datetime(2016, 12, 31, 14, 58, 14, 994030)
>>> datetime.now().year
2016
>>> date.today().year
2016
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算年龄的程序给出有关 getset_descriptor 的错误? 的相关文章

随机推荐

  • 带有 DocumentFilter 的 CellEditor 永远不会被调用

    我听不懂这个CellEditor与一个DocumentFilter按照我的意愿工作 当我输入唯一可编辑的列时 insertStringfrom PlainDocument 永远不会被调用 documentFilter 也不会被调用 我认为我
  • Nhibernate Linq In 子句

    是否可以让 Nhibernate linq 生成带有 In 子句的查询 例如 Where AnID in x y z 我不知道 nHibernate 在生成所有潜在 LINQ 查询方面的状态 但您应该能够使用 Contains 生成IN v
  • ARIA role="menuitem" 表示
  • 我找到了两种可能的解决方案 应用 role menuitem 为 li 标签 li li a some menuitem a li 应用 role menuitem 为 a tags li a some menuitem a li 我认为第
  • 是否可以从 Google Play 获取应用程序的下载次数?

    我正在尝试获取我上传到的应用程序的下载次数Google Play 我正在寻找一个 API 或类似的东西 它可以通过用户身份验证来检索下载次数 我不想要第三方应用程序 如 AppAnnie 如果它可以在 PHP 上那就太好了 而且我发现有一个
  • 递归 AJAX 调用是一个坏主意吗?

    我有一个简单的函数来提取一组模板 function getTemplates names done templates index if index index 0 if templates templates if index names
  • 为什么同时链接 sdl2 和 udev 会导致分段错误?

    我有以下非常愚蠢的 C 程序 include
  • 如何使用 Express 从一个端点发送多个查询?

    我试图多次查询我的数据库并构造一个对象 该对象将数据库中的每个响应存储在一个字段中 这是我的代码 router post search req res gt var collection db get collection styles v
  • SQL,外键约束出现错误信息

    IF EXISTS SELECT FROM INFORMATION SCHEMA TABLES WHERE TABLE NAME animal vaccinations DROP TABLE animal vaccinations IF E
  • ggplot2移动小平面布局

    我想手动 或自动 更改 R 中 ggplot2 图形的分面图的面板布局 我已经看到了注释和分面重新排序的解决方案 但没有看到这个具体问题 这是一个可重现的示例 library ggplot2 plot lt ggplot diamonds
  • 执行 ListViewItem 命令的附加行为

    当用户双击列表项时 我尝试使用附加行为在我的 ViewModel 中执行命令 我已经审阅了有关该主题的许多文章 并尝试创建一个简单的测试应用程序 但仍然遇到问题 例如 使用 MVVM 从 WPF ListView 项目触发双击事件 http
  • 更新文本文件中特定行中的特定字段

    下面是我可以更新我的书的数量的代码 但我似乎无法更新我的其他信息 如书名 作者 价格等 代码如下 if grep q bookname author BookDB txt then read p Update Qty to what new
  • 使用 Objective-C、C 或 C++ 广播到 Icecast / SHOUTcast

    我想在不使用自己的广播公司的情况下向 SHOUTcast 或 Icecast 服务器提供音频数据 因为我将在包括移动设备在内的各种平台上使用它 我需要协议描述 开源项目或示例 以便能够使用 Objective C C 或 C 将音频数据 来
  • 如何在向 self 发布表单时保留 GET 参数?

    我有一个带有一个 GET 参数的 URL 我正在尝试发布一个简单的表单 基本上是为了简单地向 URL 添加一个 GET 参数 当前网址 mysite com page php first 123 表单 HTML
  • AWS CloudFormation 用户数据传递

    如何将参数输入数据传递给 AWS cloudformation 中的用户数据 示例 我有一个参数 EnvType 在运行 CFT 时我将传递 qa 作为该参数的输入 我希望读取此参数值 qa 并将其传递给用户数据 以便我可以将其写入实例磁盘
  • DI 与一次性物品

    假设我的存储库类如下所示 class myRepository IDisposable private DataContext context public myRepository DataContext context context
  • Perl 的等价于 awk 的 /text/,/END/ 吗?

    我正在寻找替换一个令人讨厌的 shell 脚本 该脚本使用 awk 来修剪一些 HTML 问题是我在 Perl 中找不到任何执行上述功能的东西 awk
  • Ruby on Rails MySQL #08S01握手错误 - 降级 MySQL?

    我们最近在 Ubuntu 10 04LTS 服务器上从 MySQL 5 1 41 升级到 5 1 61 我们有一个古老的 RoR Web 应用程序 现在出现了错误的握手错误 Mysql Error in MainController ind
  • 如何安装diesel_cli并出现“无法打开输入文件libpq.lib”错误?

    我正在尝试安装diesel cli在我的机器上并遇到错误 PS C gt cargo install diesel cli no default features features postgres error linking with l
  • 如何绘制不等式

    I would like to plot the following inequalities y lt p2 1 p1 and x lt p1 1 y 1 p1 Given that the first is satisfied I wa
  • 计算年龄的程序给出有关 getset_descriptor 的错误?

    我正在尝试编写一个非常简单的Python程序来计算某人的年龄 我认为理论上它应该可以工作 但是每次我尝试运行它时 它都会抛出以下错误 What year were you born in 2005 Traceback most recent