首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >长方法调用中的Python美学

长方法调用中的Python美学
EN

Stack Overflow用户
提问于 2017-06-30 22:41:20
回答 1查看 83关注 0票数 0

我有一些代码,基本上看起来像这样:

代码语言:javascript
复制
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文件中编码生成的,所以我不想更改它。

EN

回答 1

Stack Overflow用户

发布于 2017-06-30 22:59:20

使用一些局部变量怎么样?一个好的经验法则是每行只有一个函数调用。

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44849075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档