Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python代码,未自定义_Python - Fatal编程技术网

Python代码,未自定义

Python代码,未自定义,python,Python,不工作 它说变量self在实际定义时没有定义 如果输入不是由核苷酸字母组成的字符串,或者包含不能组合在一起的核苷酸,则函数checkSegment返回1 如果发生这种情况,它就会退出,没关系,它工作得很好 然后,它使用函数checkXNA分配信息(如果是RNA或DNA)检查,该函数返回一个包含信息“dnaSegment”或“rnaSegment”的字符串;工作完美 但是,设计用于打印更具体信息的函数echo告诉我,self没有定义,但为什么呢 self未在函数定义时定义,您无法使用它创建默认

不工作

  • 它说变量self在实际定义时没有定义
  • 如果输入不是由核苷酸字母组成的字符串,或者包含不能组合在一起的核苷酸,则函数
    checkSegment
    返回1
  • 如果发生这种情况,它就会退出,没关系,它工作得很好
  • 然后,它使用函数
    checkXNA
    分配信息(如果是RNA或DNA)检查,该函数返回一个包含信息“dnaSegment”或“rnaSegment”的字符串;工作完美

但是,设计用于打印更具体信息的函数
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