python - 方法参数还是实例属性?
问题描述
有时,当我为需要作用于某个变量的类设计新方法时,我不能说是否最好将此变量作为方法参数传递,或者是否最好将此变量保存为实例属性并仅使用它在方法里面。两种方法的优点/缺点是什么?
class A:
def __init__(self, data):
self.data = data
def my_method(self):
# does something with self.data
或者
class B:
def my_method(self, data):
# does something with data
解决方案
这取决于班级可能做的所有其他事情。
最普遍的是,您的类封装的抽象是什么?
它需要data
进行大量操作,还是仅此一项?会data
改变吗?如果data
是这个类的“点”,那么它可能应该在 中__init__
,但如果它用于data
作用于对象,那么可能不是。
我们需要了解更多......
推荐阅读
- python - Python未解决导入win32clipboard
- java - 安装为 snap 包时如何配置 netbeans?
- asp.net - Obout Grid:仅在某些行的网格上隐藏图像
- linux - Visual Studio远程调试,选择自定义gdb.exe(linux makefile项目)
- java - 如何使用命令行为项目执行“与 Gradle 文件同步项目”?
- python - 如何在 Python 上使用 PuLP GLPK 为混合整数线性规划 (MILP) 的决策变量编写 IF 条件?
- sql - 如何连接定义为字符串数据类型并且在 bigquery 中采用不同格式的日期列?
- python - 如何在 Django 中更新数据库中的值?
- c# - 具有基于自定义角色的授权的 ASP.Net Core 3.0 Windows 身份验证
- c# - C# AWS Lambda 和 Thread.Sleep()