1

其实我想写

def w_cell(self, r, c, val, style=XLS.get_cell_stlye(self))

但它不能,并告诉我错误

NameError:名称“自我”未定义

如何在参数而不是函数中设置默认样式。

谢谢

class XLS():

    def get_cell_stlye(self):        
        return xlwt.easyxf("alignment: horizontal center,\
         vertical center, wrap true ;")


class TestCGI(object, XLS):
    def w_cell(self, r, c, val, style='null'):
            if style == 'null':
                style=XLS.get_cell_stlye(self)
            self.sht.write(r, c, val, style)
4

2 回答 2

0

简短的回答是你不能这样写。创建函数时计算默认参数。在函数创建时,self还不存在1,所以它与默认值的计算没有任何关系。

1毕竟,如果该类还不存在,它就不能有任何实例——即使有,它会选择哪个实例self

于 2013-09-27T03:54:16.617 回答
0

在函数本身中设置它很好,尽管您可能希望这样做:

class TestCGI(object, XLS):
    def w_cell(self, r, c, val, style=None):
        if style is not None:
            style=XLS.get_cell_stlye(self)
        self.sht.write(r, c, val, style)
于 2013-09-27T03:57:10.760 回答