python - 在类中存储变量的最佳 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
解决方案
如果您仅在此文件中使用枚举,请将它们放在同一个文件中。否则,将它们移动到不同的文件。
推荐阅读
- vue.js - 如何修复@vue/cli 漏洞?
- laravel - 获取 [错误:请求失败,状态码为 500],同时将 POST 请求与对 laravel API 的本机反应
- javascript - 在每次更改数组 JS 后插入项目
- javascript - Odoo v12 javascript双rpc调用问题
- java - 为什么不能设置“自定义”类的属性(在java(7)中)?
- java - Spring REST API 在响应中添加额外的键值对
- json - 调用模板返回“提供的元素名称是零长度字符串”
- python - 无法使用 python 启动 selenium 会话
- python - Python memory_profiler:@profile 不适用于多线程
- django - Mpesa 对象没有属性“更新”