Rag*_*rok 0 python class function object self
我有一个数据工程程序,它从联邦政府网站上获取一些数据并转换这些数据。我对是否需要使用“self”关键字或者根本不使用类是否更好的做法感到有些困惑。这是它目前的组织方式:
class GetGovtData():
def get_data_1(arg1=0, arg2=1):
df = conduct_some_operations
return df
def get_data_2(arg1=4, arg2=5):
df = conduct_some_operations_two
return df
Run Code Online (Sandbox Code Playgroud)
我主要在这里使用一个类来进行组织。例如,我可能需要使用一个类中的十几种不同方法。我发现输入这个更美观/更容易:
from data.get_govt_data import GetGovtData
df1 = GetGovtData.get_data_1()
df2 = GetGovtData.get_data_2()
Run Code Online (Sandbox Code Playgroud)
而不是:
from data import get_govt_data
df1 = get_govt_data.get_data_1()
df2 = get_govt_data.get_data_2()
Run Code Online (Sandbox Code Playgroud)
其中只有一大堆下划线。所以我很好奇使用这样的类是否会被认为是糟糕的代码,而不用担心“自我”?或者我应该消除这些类并在我的文件中使用一堆函数?
如果您在 Python 类中开发函数,您可以通过两种方式定义函数:一种以 self 作为第一个参数,另一种不带 self。
那么,两者有什么不同呢?
第一个是方法,它能够访问所创建对象中的内容。这允许您访问单个对象的内部状态,例如某种类型的计数器。这些是您在使用面向对象编程时通常使用的方法。一个简短的介绍可以在这里 [外部链接]资金。这些方法要求您创建给定类的新实例。
无需初始化类实例的函数。这就是为什么您可以在导入的类上直接调用它们的原因。
这是基于 Tom K 的评论。除了使用 self,您还可以使用装饰器@staticmethod来指示该方法在您的类中的作用。更多信息可以在这里找到[外部链接]。
回答您最初的问题:您不需要使用self. 在您的情况下,您不需要 self,因为您不共享对象的内部状态。然而,如果您使用类,您应该考虑面向对象的设计。
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |