2017-02-13 18 views
0

我是新来的Python和有点困惑参数传递: 我有2种方法:parameteres在python转移

def convert(self, ipnb, indices = []): 
    with self.fopen(ipnb, u'r') as f: 
     emptyIndicesList = not indices 
     #some code 

def test_read(self): 
    s = self.convert(self, u'test.ipynb') 
    #some code 

我遇到的2个问题:

  1. 如果我运行代码因为是self.fopen(ipnb, u'r') as f抛出...... 但如果我改变with self.fopen(ipnb, u'r') as fself.fopen(u'test.ipynb', u'r') as f它工作正常

  2. emptyIndicesListfalse,我期望它是true,因为我认为我使用的是默认参数 - 空列表 我在参数传输中缺少什么?上述问题应该如何解决?

谢谢:)

回答

1

您传递上下文作为第一个参数传递给函数转换

更改s = self.convert(self, u'test.ipynb')改为s = self.convert(u'test.ipynb')它应解决您的两个问题。