我尝试将模块范围的变量本地化到模块中的定义,但是我得到UnboundLocalError
并且与提出错误的原因相混淆。例如,以下代码在模块test.py
# implementation 1
a=5
def geta():
a=a
return a
导入并运行:
>>> import test
>>> test.geta()
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
test.geta()
File "test.py", line 3, in geta
a = a
UnboundLocalError: local variable 'a' referenced before assignment
但以下方法有效。
第一个是定义输入变量a
的默认值:
# implementation 2
a=5
def geta(a=a):
return a # return 5
第二个是在定义中使用不同的名称:
# implementation 3
a=5
def geta():
b=a
return b # return 5
为什么我无法使用具有相同名称的实施1 本地化变量a
?为什么它会在实施1 中引发错误referenced before assignment
,但在实施3 中有效?
答案 0 :(得分:0)
Aggregate(
PeriodsToDate(
[Date].[Calendar Hierarchy].[Year],
[Date].[Calendar Hierarchy].CurrentMember
),
[Measures].[Sales]
)
你必须制作一个全局变量