python - 有人可以解释这个 Python(变量=类型,变量=列表=列表等)吗?
问题描述
我一直在查看 Python-chess 模块的一些代码,并且看到了我从未遇到过的语法。
Color = bool
COLORS = [WHITE, BLACK] = [True, False]
COLOR_NAMES = ["black", "white"]
PieceType = int
PIECE_TYPES = [PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING] = range(1, 7)
PIECE_SYMBOLS = [None, "p", "n", "b", "r", "q", "k"]
PIECE_NAMES = [None, "pawn", "knight", "bishop", "rook", "queen", "king"]
1)这条Color = bool
线的重点是什么?
2)如何COLOURS
分配给两个列表?(和同样的PIECE_TYPES
?)
完整代码:https : //github.com/niklasf/python-chess/blob/master/chess/init .py 相关内容从第 41 行开始
解决方案
它只是序列解包和链式分配的组合。相当于
WHITE = True
BLACK = False
COLORS = [WHITE, BLACK]
Color = bool
只是使Color
引用与名称相同的值bool
(即内置类型bool
)。也一样PieceType
;大概两者都在以后使用。
一个不那么骇人听闻的实现将使用该enum
模块。就像是
from enum import Enum, IntEnum
class Color(IntEnum):
BLACK = 0
WHITE = 1
class Piece(Enum):
PAWN = ("p", "pawn")
KNIGHT = ("n", "knight")
BISHOP = ("b", "bishop")
ROOK = ("r", "rook")
QUEEN = ("q", "queen")
KING = ("k", "king")
推荐阅读
- python - OptionError while trying to set chained_assigment to None in pandas
- javascript - Created raster is not following mouse
- mysql - 如何获取sql每天的记录总数
- unit-testing - how to write unit testing for modal or alert popup in ionic 4
- node.js - 我可以在 multer 自定义存储引擎 _handleFile 函数中访问 res 对象吗
- excel - 将范围分配给数据验证 - VBA
- javascript - ReactJs - 在 chrome 中触发文件下载
- julia - 在 Julia 中并行化两个(或更多)函数
- javascript - 开玩笑地从节点模块中模拟特定类
- wix - Wix 工具集:如何在安装时删除快捷方式?