代码之家  ›  专栏  ›  技术社区  ›  Peter Pik

__打印时未调用str\uuu方法

  •  0
  • Peter Pik  · 技术社区  · 8 年前

    import_ get_sql 即使它在 __str__

    class Query(object):
        """
        Query builder entry functions
        """
        @classmethod
        def _builder(cls):
            return QueryBuilder()
    
        @classmethod
        def import_(cls, source_type):
            return cls._builder().import_(source_type)
    
    
    class QueryBuilder(object):
        """
        Query Builder is the main class that generates sql
        """
        def __init__(self, quote_char='"'):
            self._from = []
            self._import = None
            self._source_type = None
            self.quote_char = quote_char
    
        def import_(self, source_type):
            if source_type == SourceType.XML:
                raise KeyError('Importing a XML is not supported')
            self._source_type = source_type
    
        def __str__(self):
            return self.get_sql(quote_char='"')
    
        def get_sql(self):
            if not (self._import):
                return 'test'
            return 'e'
    

    打印脚本:

    importQuery = Query.import_(sourceTypeEnum)
    print(importQuery)
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   MSeifert    8 年前

    return self 在您的 QueryBuilder.import_ 方法,否则它将返回 None 因此 importQuery 没有一个 -不是你的 QueryBuilder