Python代码,未自定义
不工作Python代码,未自定义,python,Python,不工作 它说变量self在实际定义时没有定义 如果输入不是由核苷酸字母组成的字符串,或者包含不能组合在一起的核苷酸,则函数checkSegment返回1 如果发生这种情况,它就会退出,没关系,它工作得很好 然后,它使用函数checkXNA分配信息(如果是RNA或DNA)检查,该函数返回一个包含信息“dnaSegment”或“rnaSegment”的字符串;工作完美 但是,设计用于打印更具体信息的函数echo告诉我,self没有定义,但为什么呢 self未在函数定义时定义,您无法使用它创建默认
- 它说变量self在实际定义时没有定义李>
- 如果输入不是由核苷酸字母组成的字符串,或者包含不能组合在一起的核苷酸,则函数
返回1李>checkSegment
- 如果发生这种情况,它就会退出,没关系,它工作得很好李>
- 然后,它使用函数
分配信息(如果是RNA或DNA)检查,该函数返回一个包含信息“dnaSegment”或“rnaSegment”的字符串;工作完美李>checkXNA
但是,设计用于打印更具体信息的函数
echo
告诉我,self没有定义,但为什么呢 self
未在函数定义时定义,您无法使用它创建默认参数
函数定义中的表达式在创建函数时求值,而不是在调用函数时求值,请参见
请改用以下方法:
class makeCode:
def __init__(self,code):
self.codeSegment = code.upper()
if checkSegment(self.codeSegment):
quit()
self.info=checkXNA(self.codeSegment)
def echo(self,start=0,stop=len(self.codeSegment),search=None): #--> self not defined
pass
如果需要支持None
作为stop
的可能值(例如None
是stop
的有效值,如果明确指定),则需要选择不同的唯一哨兵来使用:
def echo(self, start=0, stop=None, search=None):
if stop is None:
stop = len(self.codeSegment)
在计算函数或方法定义时,即在解析类时,会计算默认参数值 写入依赖于对象状态的默认参数值的方法是使用
None
作为哨兵:
_sentinel = object()
class makeCode:
def echo(self, start=0, stop=_sentinel, search=None):
if stop is _sentinel:
stop = len(self.codeSegment)
def echo(self,start=0,stop=None,search=None):
if stop is None:
stop = len(self.codeSegment)
pass