python - Python中的多值变量
问题描述
有没有办法为一个变量分配多个值?我正在编写单人纸牌游戏,并使用 ACE 到 KING 的值作为卡片。有没有办法为变量分配“ACE”的值和“1”的值等等,KING 是“13”?这不是必需的,但会使代码更简单,更容易创建。
谢谢大家,我目前有这个:
from collections import namedtuple
Card = namedtuple('Card', 'name value')
ace = Card(name="ACE", value=1)
当我这样做时: print(ace)
我最终得到:Card(name="ACE", value=1)
当我执行 ace.name 或 ace.value 时,我也会得到正确的结果。
有没有办法在列表中包含“ace”值,而只撤回名称?
解决方案
您可以使用一个类或namedtuple
包装两条数据
from collections import namedtuple
Card = namedtuple('Card', 'name value')
ace = Card(name="ACE", value=1)
king = Card(name="King", value=13)
自定义类可能会更好,因为这样您就可以实现类似的逻辑card1 < card2
我可以使声明 stackA + 1 == stackB 为真吗?
是的,如果您在 Card 类型上实现__radd__
and__eq__
方法,接受将其他 Cards 添加到 int 类型并将结果与其他 Card 类型进行比较
推荐阅读
- istio - 如何在 istio 中始终允许 HTTP OPTION 请求?
- java - 使用spring boot(安全)和keycloak启用角色身份验证?
- ninject - GlobalConfiguration.Configuration.UseNinjectActivator 与 Hangfire.Ninject 不存在
- mobile - 如何构建一个向后端 API 提交大量表单数据的 Flutter 应用程序
- postgresql - 这些索引是否对 customer_id 做同样的事情?
- r - eval 中的错误:找不到 dateRangeInput 的对象
- android - 使用 Glide 从 gif 中删除不必要的白色背景?
- sql-server - 在 MSSQL 中选择带有条件的上一行和下一行
- autodesk-forge - 在伪造查看器中加载多个模型(聚合)并默认将其他模型加载为隐藏,直到用户从模型浏览器中选择
- java - Web3j ECKeyPair 到 KeyPair