鱼C论坛

 找回密码
 立即注册
查看: 2722|回复: 6

关于获取自建函数的中间变量的问题

[复制链接]
发表于 2017-2-17 15:58:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题:
我自己建了一个函数如下:
  1. def geturls(page):
  2.     res = ……页面请求过程略
  3.     html = res.text#获取了页面
  4.     date = json.loads(html)#获取了字典
  5.     title = date['title']
  6.     urls = []
  7.     for i in date['items']:
  8.         url = 'shaoahohafoaojafjamaojfaojaoj%s' % i
  9.         urls.append(url)
  10.     return urls

  11. def getitems(page):
  12.     for url in geturls(page):
  13.         print('标题是:%s' % 【我想在这里引用一下第一个函数中的title的值】)
  14.         ……
  15.         pass
复制代码


我想在第二个函数中引用一下第一个函数在执行的过程中得到的一个变量title的值,请问可以如何调用呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 16:11:18 | 显示全部楼层
在函数1中的变量加上global
简单的例子:
  1. def a():
  2.     global x
  3.     x = 3
  4. def b():
  5.     print(x)
  6. a()
  7. b()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 16:17:07 | 显示全部楼层
冬雪雪冬 发表于 2017-2-17 16:11
在函数1中的变量加上global
简单的例子:


好像记得这个用法,是把X变成全局变量的意思
我怎么没想到呢
其实我想到的是另外一种方法,就是让第一个函数返回2个值
如:
  1. def get(num):
  2.     f = num*3
  3.     h = 'start:%d' % num
  4.     return f,h

  5. def b(num):
  6.     for i in range(1,get(num)[0]):
  7.         print(i)
  8. b(6)
复制代码

自己想到的方法
感觉也挺好理解的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 16:21:04 | 显示全部楼层
冬雪雪冬 发表于 2017-2-17 16:11
在函数1中的变量加上global
简单的例子:

但是我发现我把我的函数改成你这样,不行
根本找不到这个全局变量
我怀疑是不是这个设定的全局变量必须是一个定量?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 16:22:51 | 显示全部楼层
gopythoner 发表于 2017-2-17 16:21
但是我发现我把我的函数改成你这样,不行
根本找不到这个全局变量
我怀疑是不是这个设定的全局变量必须 ...

自问自答,
其实是我自己少了一步,要先调用一下第一个函数才能引用这个全局变量
  1. def get(num):
  2.     global f
  3.     f = num*3
  4.     h = 'start:%d' % num
  5.     return f,h

  6. def b(num):
  7.     get(num)
  8.     for i in range(1,f):
  9.         print(i)

  10. b(6)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 16:28:19 | 显示全部楼层
gopythoner 发表于 2017-2-17 16:22
自问自答,
其实是我自己少了一步,要先调用一下第一个函数才能引用这个全局变量

是的,所以我的例子里是先调用a后才调用b的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 18:38:28 | 显示全部楼层
学习了,大佬们
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 04:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表