我正在构建一个简单的查询构建器,但是在尝试测试时,似乎Query.import_('')
返回一个类对象而不是字符串,因为我在测试类型时得到<'query.QueryBuilder'>
。无论如何要把它作为一个字符串?
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
return self
def __str__(self):
return self.get_sql(quote_char='"')
def get_sql(self):
if not (self._import):
return 'select 1 from dual'
return 'select 1 from dual'
答案 0 :(得分:0)
正如this comment正确观察到的那样,您正在测试类型,而不是打印出来的对象。当您在其上调用__str__
函数或在其上调用str
时,会调用print
方法。
在你的情况下,你没有。要查看__str__
方法的输出,您可以
x = QueryBuilder()
print(x)