python - 添加到计数器的函数引发局部变量错误
问题描述
我正在尝试制作一个添加到简单变量计数器的函数。
counter = 0
如果我只是这样做,我会收到以下错误:
def counter_adder(rank):
if rank < 5:
counter = counter + 1
UnboundLocalError:分配前引用的局部变量“in_in”
global
我可以通过在函数中添加一个变量来使其工作:
def counter_adder(rank):
global counter
if rank < 5:
counter = counter + 1
但是,我听说这很糟糕(为什么?)并且想知道是否有更好的方法来做到这一点?
解决方案
我最近才发现,您可以将属性附加到函数。这将是类似的确切用例。
def counter_adder(rank):
if rank < 5:
counter_adder.counter+=1
counter_adder.counter = 0
counter_adder(5)
print(counter_adder.counter)
推荐阅读
- amazon-web-services - 为 aws 主机指定的证书在哪里?
- huawei-mobile-services - 如何在 HMS Awareness 中检测到正常的蓝牙连接?
- azure - DevOps 管道自动化 - 基础设施和应用程序部署
- java - 如何实现android跟随系统夜间/黑暗模式?
- web - Web 安装程序问题 -DB 问题 - 服务器主体“DOMAIN\MACHINENAME$”无法访问数据库
- flask - “蓝图”对象没有属性“记录器”
- angular - 如何利用 let-* 和 ngTemplateOutlet 进行角度动态列表
- ios - Firestore iOS - 为什么我的阵列多次打印出来?
- flutter - 列表磁贴内的 Flutter 布局(搜索栏 + 下拉菜单 + 其他小部件)
- google-sheets - 谷歌是否对向谷歌表格、文档、日历等提出的 API 请求收费,