Chinaunix

标题: [求助]函数中打印变量名 [打印本页]

作者: hjfeng1988    时间: 2015-04-29 11:31
标题: [求助]函数中打印变量名
  1. #!/usr/local/bin/python
  2. line1=[1]
  3. line2=[1,'','a']
  4. line3=['b','c']
  5. def linenum(line):
  6.         if len(line) >= 2:
  7.                 if line[1] == '':
  8.                         print '%s[1] is empty' % line
  9.                 else:
  10.                         print '%s[1] = %s' % (line,line[1])
  11.         else:
  12.                 print '%s[1] is none' % str(line)
  13. linenum(line1)
  14. linenum(line2)
  15. linenum(line3)
复制代码
  1. root@10:~/py # python num.py
  2. [1][1] is none
  3. [1, '', 'a'][1] is empty
  4. ['b', 'c'][1] = c
复制代码
我希望输出的结果是:
line1[1] in none
line2[1] is empty
line3[1] = c
作者: liujinz    时间: 2015-05-04 09:20
本帖最后由 liujinz 于 2015-05-04 09:20 编辑

你这里的[1]都被认为是格式串的一部分,不会被认为是列表的下标的。
作者: substr函数    时间: 2015-05-04 13:38
一部分
  1. line1[1] is none
  2. line2[1] is empty
  3. line3[1] = c
  4. line4[1] = c
复制代码
  1. line1 = [1]
  2. line2 = [1,'','a']
  3. line3 = ['b','c']
  4. line4 = ['b','c']


  5. def linenum(line):
  6.   for k, v in globals().iteritems():
  7.     if id(v) == id(line):
  8.       name = k
  9.       break  
  10.   if len(line) >= 2:
  11.     if line[1] == '':
  12.       print '%s[1] is empty' % name
  13.     else:
  14.       print '%s[1] = %s' % (name,line[1])
  15.   else:
  16.     print '%s[1] is none' % name
  17.    
  18. linenum(line1)
  19. linenum(line2)
  20. linenum(line3)
  21. linenum(line4)
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2