Py学习  »  Python

存储类变量的最佳Pythonic方法

Anthony • 5 年前 • 1273 次点击  

这里有四种不同的存储变量的方法。我试着从一个容易阅读的角度来看,哪种方式是最具蟒蛇式的。


定义方法内部的变量。

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社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53689
 
1273 次点击  
文章 [ 2 ]  |  最新文章 5 年前