为了账号安全,请及时绑定邮箱和手机立即绑定

self.number 为什么不是 num?

class Fib(object):
   def __init__(self, num):
       a, b, L = 0, 1, []
       for n in range(num):
           L.append(a)
           a, b = b, a + b
       self.numbers = L

正在回答

2 回答

因为这里需要一个属性,方便在__str__特殊方法里面中对列表进行处理,这里是转换为字符串,如果不加numbers来接收L的话,则比较麻烦

0 回复 有任何疑惑可以回复我~

  self.numbers = L 

题主注意看啊,numbers 和L在 def __init__(self, num):定义行里都没有出现,也就是说  self.numbers = L 其实是给Fib另外加了一个属性, num和nunmers是两个不同的属性,num是开始就定义的,numbers是后来添加的属性

0 回复 有任何疑惑可以回复我~
#1

秦始瑝3250279

请问为什么添加了num和nunmers是两个不同的属性,而f = Fib(10)时就默认的是num属性,nunmers这个属性如何体现呢?
2016-05-19 回复 有任何疑惑可以回复我~
#2

溯流光丶 回复 秦始瑝3250279

numbers属性是作为一个集合,也可以把L = []成 self.numbers = [].只是之后也要相应修改,一样可以实现,属性名字是都可以起的,这里只是习惯,和num参数无关,之后的实例方法会调用self.numbers这个属性。
2016-06-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

self.number 为什么不是 num?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信