首页 > 解决方案 > 在类中存储变量的最佳 Pythonic 方法

问题描述

这里有 4 种不同的变量存储方式。从某种意义上说,我想看看哪种方式是最 Pythonic 的方式,它很容易阅读。

也许,创建一个外部文件并将所有变量放在其中可能会有所帮助?我不太关心人们能够将这些变量访问到其他文件中。这些变量将仅用于此类。


在方法中定义变量。

class Cat(object):
    def __init__(self, color, breed, age):
        self.color = color
        self.breed = breed
        self.age = age

    def is_old_cat(self):
        OLD_AGE = 15

        if self.age > OLD_AGE:
            return True

        return False

    def is_young_cat(self):
        YOUNG_AGE = 5

        if self.age < YOUNG_AGE:
            return True

        return False

    def is_medium_young(self):
        LOW_MEDIUM_AGE = 8
        HIGH_MEDIUM_AGE = 12

        if LOW_MEDIUM_AGE < self.age < HIGH_MEDIUM_AGE:
            return True

        return False

课堂内。

class Cat(object):
    OLD_AGE = 15
    YOUNG_AGE = 5
    LOW_MEDIUM_AGE = 8
    HIGH_MEDIUM_AGE = 12

    def __init__(self, color, breed, age):
        self.color = color
        self.breed = breed
        self.age = age

    def is_old_cat(self):
        if self.age > self.AGES['OLD_AGE']:
            return True

        return False

    def is_young_cat(self):
        if self.age < self.AGES['YOUNG_AGE']:
            return True

        return False

    def is_medium_young(self):
        if self.AGES['LOW_MEDIUM_AGE'] < self.age < self.AGES['HIGH_MEDIUM_AGE']:
            return True

        return False

课外。

OLD_AGE = 15
YOUNG_AGE = 5
LOW_MEDIUM_AGE = 8
HIGH_MEDIUM_AGE = 12


class Cat(object):
    def __init__(self, color, breed, age):
        self.color = color
        self.breed = breed
        self.age = age

    def is_old_cat(self):
        if self.age > AGES['OLD_AGE']:
            return True

        return False

    def is_young_cat(self):
        if self.age < AGES['YOUNG_AGE']:
            return True

        return False

    def is_medium_young(self):
        if AGES['LOW_MEDIUM_AGE'] < self.age < AGES['HIGH_MEDIUM_AGE']:
            return True

        return False

另一个班级里面。

class Ages:
    OLD_AGE = 15
    YOUNG_AGE = 5
    LOW_MEDIUM_AGE = 8
    HIGH_MEDIUM_AGE = 12


class Cat(object):
    def __init__(self, color, breed, age):
        self.color = color
        self.breed = breed
        self.age = age

    def is_old_cat(self):
        if self.age > Ages.OLD_AGE:
            return True

        return False

    def is_young_cat(self):
        if self.age < Ages.YOUNG_AGE:
            return True

        return False

    def is_medium_young(self):
        if Ages.LOW_MEDIUM_AGE < self.age < Ages.HIGH_MEDIUM_AGE:
            return True

        return False

标签: python

解决方案


如果您仅在此文件中使用枚举,请将它们放在同一个文件中。否则,将它们移动到不同的文件。


推荐阅读