[英]__str__ method not being called when printing
我正在尝试创建一个简单的sql builder类,但是当我尝试打印import_
的输出时,即使它在__str__
函数中,它似乎也不返回get_sql
的内容。 我究竟做错了什么?
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)
您需要添加一个return self
,在你结束QueryBuilder.import_
方法,否则将返回None
,因此你importQuery
将None
-不是你的实例QueryBuilder
如你预期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.