有什么办法可以做到以下几点吗?
def getTables(self, db = self._dbName):
//do stuff with db
return func(db)
Run Code Online (Sandbox Code Playgroud)
我得到了"self" is not defined.我能做到这一点......
def getTables(self, db = None):
if db is None:
db = self._db
//do stuff with db
return func(db)
Run Code Online (Sandbox Code Playgroud)
......但那只是烦人的.
函数签名在定义函数时进行评估,而不是在调用函数时进行评估.
当定义函数时,还没有实例,甚至还没有类.
确切地说:类主体的表达式在创建类对象之前执行.函数默认值的表达式在创建函数对象之前执行.此时,您无法创建要绑定的实例self.
因此,使用哨兵(像None)是你唯一的选择.如果db永远不假,你可以简单地使用:
def getTables(self, db=None):
db = db or self._db
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |