【问题标题】:What is the reason of making a : subscription on Python variables? [duplicate]订阅 Python 变量的原因是什么? [复制]
【发布时间】:2021-04-07 17:16:36
【问题描述】:

我在 Stack Overflow 上找到了这段代码:

input_filename = "to_modify.xlsx"
wb = load_workbook(input_filename)
# Get first sheet
sh: worksheet = wb[wb.sheetnames[0]]

链接在这里:How to change font size in Python OpenPyXL

所以,我尝试了一种简化的方式:

str = [1, 2, 3, 4]
bo: fo = str[str[0]]

它给了我错误信息:TypeError: 'type' object is not subscriptable

这里的想法是什么?为什么我需要这个 : 字符?

【问题讨论】:

  • 你试过不使用str作为变量名吗?那代表字符串类型,所以它可能会认为您正在尝试对类型值进行索引

标签: python python-3.x subscription


【解决方案1】:

这里发生了一些事情。

在这种情况下,: 表示类型提示。

sh: worksheet = wb[wb.sheetnames[0]]

表示'sh'引用'worksheet'并初始化为'wb'的第一个工作簿

您根本不必使用类型提示,但对于大型协作项目来说这是一个好主意;如果没有别的,它有助于提高可读性。

对于您自己的示例,您不幸选择了“str”,因为它在 python 中被保留为一种类型。以下是一些可能对您有意义的替代方案:

s: str = 'abcd' # s is of type 'str' and set to 'abcd'
fibos: list = [1, 2, 3, 5, 8, 13, 21, 34] # fibos is a list
s, fibos
#('abcd', [1, 2, 3, 5, 8, 13, 21, 34])

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2016-03-25
    • 2021-01-26
    • 2017-06-21
    相关资源
    最近更新 更多