4个回答
展开全部
你的问题感觉有些困惑,推荐答案里应该是正解。不过后面又有朋友回复你用类来表达。我觉着他们都说得对。你先想清楚,你的数据结构的组织关系。
哪些是需要隐藏的,为什么要隐藏。不隐藏会有什么后果。然后你再想用函数+变量方式还是用类方式。
明确说明函数是没有静态变量的。所以不存在函数里有一个变量,几个其它的函数可以引用,这个变量又是封闭隐藏的。这感觉思维刘有些混乱。
只要你自己想清楚了,迈过这一关,自然就会自己找到答案的。
def fun1(parameter1):
var b
b=333
return b
def fun2(parameter2):
c=fun1(parameter2*3)
return c
不知道你是不是想表达这样的结果。
哪些是需要隐藏的,为什么要隐藏。不隐藏会有什么后果。然后你再想用函数+变量方式还是用类方式。
明确说明函数是没有静态变量的。所以不存在函数里有一个变量,几个其它的函数可以引用,这个变量又是封闭隐藏的。这感觉思维刘有些混乱。
只要你自己想清楚了,迈过这一关,自然就会自己找到答案的。
def fun1(parameter1):
var b
b=333
return b
def fun2(parameter2):
c=fun1(parameter2*3)
return c
不知道你是不是想表达这样的结果。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果需要封装细节和防止名称污染的话,可以使用类或者闭包
我这里举个闭包的例子,data作为公用的变量,外层使用一个包装函数.
def _t( ):
data = [ None ]
def func1( value ):
print( data )
data[ 0 ] = str( value )
def func2( value ):
print( data )
data[ 0 ] = int( value )
return func1 ,func2
func1 ,func2 = _t( )
func1( 3 )
func2( '12' )
func1( 2 )
我这里举个闭包的例子,data作为公用的变量,外层使用一个包装函数.
def _t( ):
data = [ None ]
def func1( value ):
print( data )
data[ 0 ] = str( value )
def func2( value ):
print( data )
data[ 0 ] = int( value )
return func1 ,func2
func1 ,func2 = _t( )
func1( 3 )
func2( '12' )
func1( 2 )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将函数A,函数B定义在类中,将共有变量设为该类成员变量,不知道是否能满足你的需求。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以把变量设置为全局变量:
def fun1():
global var1
...
def fun2():
global var1
def fun1():
global var1
...
def fun2():
global var1
追问
变量是容器变量,由于程序其他函数很多也用到了该变量名,防止变量值相互覆盖没有设置为全局变量
追答
可以考虑在A和B函数中专门定义一个全局变量,用来在A和B之间传递变量的值,在B中将该变量赋值给全局变量。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询