Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在python类中处理越来越多的操作

如何在python类中处理越来越多的操作
EN

Stack Overflow用户
提问于 2021-09-22 00:23:26
回答 1查看 26关注 0票数 1

我正在努力提高我的代码设计技能,但不确定该怎么做。目前我有一个类,它需要在init上设置特定的键,它看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class A:
  def __init__(self):
    try:
      self.key1 = some_key_finder("key1")
      self.key2 = some_key_finder("key2")
      self.key3 = some_key_finder("key3")
    except KeyError as err:
      raise SecretNotFoundError(f"...{err}")

最初它只设置了一个关键点,但随着reqs的改变,我不得不再设置两个关键点。我的问题是:如何使上面的代码更具可伸缩性,并处理(假设)不断增加的键数量?

EN

回答 1

Stack Overflow用户

发布于 2021-09-22 00:43:28

您可以将键及其结果存储在一个class属性中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class A:
    def __init__(self, keys=None) -> None:
        self.keys = dict()
        if keys:
            for key in keys:
                self.enroll(key)
    
    def enroll(self, key: str) -> None:
        try:
            self.keys[key] = some_key_finder(key)
        except KeyError as err:
          raise SecretNotFoundError(f"...{err}")
    
    def lookup(self, key: str) -> str:
        return self.keys[key]

稍后,您可以注册新密钥,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = A(keys=['key1', 'key2', 'key3'])
a.enroll(key='key4')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69280626

复制
相关文章
如何在Vuex中处理异步操作?
当组件中的fetchData方法被调用时,它会通过this.$store.dispatch触发名为fetchData的action。fetchData action中执行异步操作,例如发起API请求,然后在请求完成后通过mutations更新状态。
王小婷
2023/10/03
2600
如何在 Jenkins 构建后操作中处理预期失败
在自动化测试的过程中,持续集成是一个至关重要的环节,可以帮助团队更高效地进行代码集成和测试。Jenkins作为一个流行的持续集成工具,提供了丰富的功能来支持构建、测试和部署。本文将讨论如何在 Jenkins 中处理测试中的预期失败情况,并将其与构建状态相结合,以便更好地监控和管理项目的健康状况。
测试开发囤货
2023/09/10
8060
如何在 Jenkins 构建后操作中处理预期失败
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
28.8K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
如何在 Python 中创建静态类数据和静态类方法?
在这里,为静态类数据定义一个类属性。如果要为属性分配新值,请在赋值中显式使用类名 -
很酷的站长
2023/02/25
3.5K0
如何在 Python 中创建静态类数据和静态类方法?
如何在Python中处理日期和时间相关问题
在许多应用程序中,我们需要处理日期和时间相关的问题。无论是计算时长、格式化日期、还是进行日期运算,Python提供了丰富的库和模块来满足我们的需求。下面,我将为您介绍一些实用的技巧和操作,帮助您更好地处理日期和时间相关的问题。
用户614136809
2023/09/26
2400
如何在Python中实现高效的数据处理与分析
在当今信息爆炸的时代,我们面对的数据量越来越大,如何高效地处理和分析数据成为了一种迫切的需求。Python作为一种强大的编程语言,提供了丰富的数据处理和分析库,帮助我们轻松应对这个挑战。本文将为您介绍如何在Python中实现高效的数据处理与分析,以提升工作效率和数据洞察力。
华科云商小徐
2023/09/26
3630
【Python】如何在Windows操作
Networkx是一套基于Python的多种网络构造库。因为之前没有学过Python,因此一点点上手,这一篇讲一讲如何在Windows环境下安装Python2.7和Networkx。
py3study
2020/01/07
5160
C#设备处理类操作
C#对于处理window操作系统下的设备有天然的优势,对于大多数设备读写等操作来说基本上够了,这里只讨论通过普通的大多数的设备的操作。涉及到两大类SerialPort类,Socket的一些操作。不一定好,但希望分享出去,让更多的人受益。。
FreeTimeWorker
2020/08/31
6380
python处理xps文件_如何在Windows 10系统中处理XPS文件
XPS(XML Paper Specification)文件是Microsoft的Adobe PDF文件的竞争对手。也许这种类型的文件不像PDF那样受欢迎,但了解XPS及其工作方式可能会有所帮助。
全栈程序员站长
2022/08/23
4.1K0
PHP时间处理类操作示例
php中的几个时间处理类:DateTime,DateTimeZone,DateInterval,DatePeriod。
用户2323866
2021/07/13
1.2K0
Java中Properties类的操作
    知识学而不用,就等于没用,到真正用到的时候还得重新再学。最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加一些脚本语言Python,Perl之类的,不得已,又得重新拾起。本文通过看《Java编程思想》和一些网友的博客总结而来,只为简单介绍Properties类的相关操作。 一、Java Properties类     Java中有个比较重要的类Properties(Java.util.Properties)
Linux云计算网络
2018/01/10
1.5K0
Java中Properties类的操作
[并发编程系列]Java中的原子操作类
1. 原子操作类的作用 当程序更新一个变量时,如果多个线程同时更新该变量,可能会得到期望以外的值。比如i=1, 线程A更新i+1, 同时线程B更新I+1,经过两个线程的操作,最终变量i的值可能不是3,而是2。因为线程A、B拿到的i的值都是1,这就是线程不安全的更新操作。我们可以用synchronized来解决这样的问题,synchronized可以保证多线程之间的同步,以保证多个线程不会同时操作变量i。 但是在JDK1.5开始,就提供了java.util.concurren
用户2017109
2018/06/19
6080
python中的类
使用类几乎可以模拟任何东西。根据约定,在python中,首字母大写的名称指的是类。这个类定义中的括号是空的,因为我们要从空白创建这个类。像这样可以通过实例访问的变量称为属性。
狼啸风云
2019/01/18
1.9K0
python中的类
如何理解python中的self? 1 实例本身,对象。 2 可以理解为一个字典变量,内部存的就是对象的数据属性。
py3study
2020/01/10
1.1K0
Python操作Mysql类
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb from warnings import filterwarnings filterwarnings('error', category = MySQLdb.Warning) class MySQL : __conn = None __cursor = None def __init__(self, host, user, passwd, db ,port = 33
苦咖啡
2018/04/28
1.1K0
Python操作MongoDB的工具类
windows离线安装python3.6.8环境:https://blog.csdn.net/qq262593421/article/details/111309116
静谧星空TEL
2022/01/05
9940
Python操作MongoDB的工具类
如何在Java中处理JSON
New 一个 ObjectMapper对象,后续将利用这个ObjectMapper对象来进行一系列的操作。
泰坦HW
2020/07/22
1.5K0
如何在代码中处理时间
在国际化应用中,对日期/时间的处理远比你想象中的更难,特别是当涉及到时区的时候。为什么会这么难?我们该如何解决它?请听我为你一一解析。几乎所有的系统都离不开“时间”的概念,以至于大多数语言(及其默认库)都定义了日期/时间等类型。但是,我们日常所说的“时间”这个词实际上包含了多个相似却有微妙差异的概念。如果不能分清它们,会给你的开发工作带来很多烦恼。
ThoughtWorks
2021/09/15
1.5K0
如何在React中优雅的处理doubleClick
上午楼主遇到一个需要处理双击事件的需求,在这里介绍下如何在触发doubleCLick时间的时候, 不触发click事件的解决办法, 顺便分享给大家。
皮小蛋
2020/03/02
8K2
点击加载更多

相似问题

如何在python中处理stdout命令,如"with () as f:“

26

如何在Python中处理类**kwargs?

16

Python会话(如php)类

21

处理非ascii字符,如python中的磅。

14

如何在C中处理python设置的对象操作?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文