0
我試圖創建一個簡單的sql builder類,但是當我嘗試打印import_
的輸出時,它似乎沒有返回get_sql
的內容,即使它在__str__
函數中。我究竟做錯了什麼?打印時未調用__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)
您使用的是IDE還是Jupyter?只是在不調用'print'的情況下寫變量名就會調用'__repr__'。 –
現在已經添加了打印腳本 –
工廠模式函數需要'return self',這樣你可以聲明'importQuery = Query.import _ ..'。否則,只能使用類構造函數創建對象。 – Vinny