首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Base64Encoder类包装器

Base64Encoder类包装器
EN

Code Review用户
提问于 2018-07-23 09:30:43
回答 1查看 68关注 0票数 0

我是python的新手,我想知道在下面的代码中是否有什么问题值得我担心?

代码语言:javascript
复制
from base64 import b64encode


class Base64Encoder:

    @classmethod
    def encode_basic(cls, usr, pwd):
       token = cls.base64_encode(f"{usr}:{pwd}")
       return f'Basic {token}'

   @classmethod
   def encode_bearer(cls, token):
       return f'Bearer {token}'

   @staticmethod
   def base64_encode(token):
       return b64encode(token.encode('ascii')).decode('ascii')
EN

回答 1

Code Review用户

发布于 2018-07-23 09:56:07

你有一个只有两个classmethods和一个staticmethod的班级。一个classmethod不使用类参数,另一个引用静态方法。因此,该类的任何方法都不使用该类或其实例之一。因此,您根本不需要一个类:

代码语言:javascript
复制
def encode_basic(usr, pwd):
    token = base64_encode(f"{usr}:{pwd}")
    return f'Basic {token}'

def encode_bearer(token):
    return f'Bearer {token}'

def base64_encode(token):
    return b64encode(token.encode('ascii')).decode('ascii')

还可以考虑向函数中添加docstring,以解释它们应该如何使用。如果不了解程序的上下文,就很难知道为什么字符串是以各自的方式格式化的,以及为什么一个字符串需要ASCII编码。

票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/200094

复制
相关文章

相似问题

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