改进 BPTracker

问题描述

我正在制作一个简单的 BP 记录器。这个程序应该做的事情是:

  1. 用新输入的最新日志打印存储的BP的表日志。

  2. 根据输入的名称创建不同的文件,并存储构造函数的实例数 调用该类进行序列号写入。 这是我到现在为止得到的:

    血压追踪器

# def BPTracker Class
from os import path


class BPTracker:
    counter = 0
    comment = ''

    def __init__(self,name,sistole,diastole):
        self.name = name

        self.sistole = sistole
        self.diastole = diastole
        BPTracker.counter += 1
        BPTracker.__commentor(self)
        BPTracker.__store(self)

    def __repr__(self):
        return ('S.No.\t' + 'Name\t' + 'BP\t' + 'Remark\n' + str(BPTracker.counter) + '      ' + self.name + '\t' + str(
            self.sistole) + '/' + str(self.diastole) + BPTracker.comment)

    def __commentor(self):

        if (130 < self.sistole < 150 and 90 < self.diastole < 98) or (
                110 < self.sistole < 120 and 70 < self.diastole < 80) or (
                130 < self.sistole < 150 and 70 < self.diastole < 80) or (
                90 < self.diastole < 95 and 110 < self.sistole < 120):
            BPTracker.comment = 'M'

        elif self.sistole >= 150 or self.diastole >= 95:
            BPTracker.comment = 'H'

        elif self.sistole <= 110 or self.diastole <= 70:
            BPTracker.comment = 'L'
        else:
            BPTracker.comment = 'N'

    def __store(self):
        name = self.name + '.txt'
        if path.exists(name):
            with open(name,'a') as file:
                file.write('\n' + str(BPTracker.counter) + '\t' + str(self.sistole) + '/' + str(self.diastole) + '\t' + 
                           BPTracker.comment)
        else:
            with open(name,'w') as file:
                file.write(self.name + '\n' + str(BPTracker.counter) + '\t' + str(self.sistole) + '/' + 
                           str(self.diastole) + '\t' + BPTracker.comment)
        print('Done!')

问题:

  1. 它不存储我调用构造函数次数,如果它打开已经创建的 文件,然后我重新运行代码
  2. 我认为这不是做我想做的事情的最有效方式。

作为免责声明,我对 python 类非常陌生。你能帮我改进这个记录器吗?提前致谢!

附言主体中类的调用var = BPTracker(str(input('Enter your name: ')),int(input('Enter your BP (sistole): )),int(input('(diastole): ')))~类型,如果有帮助?‍♂️。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...