python全局变量结合函数参数默认值的问题

guo19890617 2012-03-15 08:23:21
先上代码
(1)定义全局变量和函数
name = 'test.py'

def print_name(mystring = name):
print mystring

(2)开始调用
name = 'success.py'

print name
print print_name()

结果如下:
success.py
test.py


问题:如何做到让mystring初始的默认值 等于 程序刚开始执行时赋予name的值?
也就是想得到下面的效果
success.py
success.py
请各位大侠帮忙看看啊
...全文
239 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucky-lucky 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 angel_su 的回复:]

函数默认值是死的,在定义那行就要决定了,试试用一个不应该的值当默认参数, 譬如:Python code
def print_name(mystring=None):
if mystring is None:
mystring = name
print mystring
[/Quote]
这个不错哦
georgema 2012-03-15
  • 打赏
  • 举报
回复
你不明白在哪里?一切都很明显。当你调用print print_name()的时候,因为你没有指定参数值,mystring就使用默认值,也就是name,其值为'test.py'
angel_su 2012-03-15
  • 打赏
  • 举报
回复
函数默认值是死的,在定义那行就要决定了,试试用一个不应该的值当默认参数, 譬如:
def print_name(mystring=None):
if mystring is None:
mystring = name
print mystring

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧