我有一些基本上看起来像这样的代码:
class Base(object):
def __init__(self, *args, **kwargs):
super(Base, self).__init__(*args, **kwargs)
def test_echo(self, test_string):
''' echo test '''
response, status_code = self.__agent__.Util.post_v1_util_echo(sessionToken=self.__session__,
keyManagerToken=self.__keymngr__,
echoInput={"message": test_string}
).result()
return status_code, response
def create_datafeed(self):
''' create datafeed '''
response, status_code = self.__agent__.Datafeed.post_v4_datafeed_create(sessionToken=self.__session__,
keyManagerToken=self.__keymngr__
).result()
# return the token
return status_code, response['id']
def read_datafeed(self, datafeed_id):
''' get datafeed '''
response, status_code = self.__agent__.Datafeed.get_v4_datafeed_id_read(sessionToken=self.__session__,
keyManagerToken=self.__keymngr__,
id=datafeed_id
).result()
return status_code, response
def send_message(self, threadid, msgFormat, message):
''' send message to threadid/stream '''
# using deprecated v3 message create because of bug in codegen of v4 ( multipart/form-data )
response, status_code = self.__agentdepr__.Messages.post_v3_stream_sid_message_create(sessionToken=self.__session__,
keyManagerToken=self.__keymngr__,
sid=threadid,
message={"format": msgFormat,
"message": message}
).result()
return status_code, response
但我觉得这很丑陋(美学上)。 它在线上也太长了,技术上是违反PEP8的。
有没有人对如何以更美观的方式写出来有任何想法?
方法名称是来自swagger文件的codegen,所以我不想改变它。
答案 0 :(得分:2)
使用一些局部变量怎么样?一个好的经验法则是每行只有一个函数调用。
def send_message(self, threadid, msgFormat, message):
''' send message to threadid/stream '''
message_dict = {"format": msgFormat, "message": message}
kwargs = {'sessionToken': self.__session__,
'keyManagerToken': self.__keymngr__,
'sid': threadid,
'message': message_dict}
# using deprecated v3 message create because of bug in
# codegen of v4 ( multipart/form-data )
messsages = self.__agentdepr__.Messages
post = messages.post_v3_stream_sid_message_create(**kwargs)
response, status_code = post.result()
return status_code, response