我是靠谱客的博主 忧郁石头,最近开发中收集的这篇文章主要介绍定义一个python类有属性和方法_与在另一个类方法python中定义一个类属性不同,它是在...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

编辑

注意,我注意到Instance attribute attribute_name defined outside __init__是一个可能的重复项,这一点我基本上同意(我没有想到这一点,因为我不知道要搜索pylint)。但是,我希望这个问题保持开放,因为我希望能够使用相同的方法重新初始化我的类。上一个问题中的普遍共识是从loadData脚本返回每个参数,然后将其解析为self对象。这很好,但是,我仍然需要在另一个方法中重新初始化类的实例,这看起来仍然是额外的工作,只是为了增加一点可读性。也许这个问题就是我的例子。在现实生活中,loadData例程会读入大约30个参数,这就是为什么我不愿意在两个不同的位置解析它们。在

如果这里的普遍共识是返回参数是正确的方法,那么我们可以继续,并将这个问题作为一个重复的问题结束;但是,同时,我还想看看其他人是否有任何想法/对原因有什么好的解释。在

原创

这是一个“最佳实践”问题。我最近一直在学习python(一部分是为了学习新东西,另一部分是为了摆脱MATLAB)。在使用python时,我创建了一个结构如下的类:class exampleClass:

"""

This is an example class to demonstrate my question to stack exchange

"""

def __init__( self, fileName ):

exampleClass.loadData( self, fileName )

def loadData( self, fileName ):

"""

This function reads the data specified in the fileName into the

current instance of exampleClass.

:param fileName: The file that the data is to be loaded from

"""

with open(fileName,'r') as sumFile:

self.name = sumFile.readLine().strip(' nrt')

这对我来说很有意义。我有一个init类,它通过调用population函数填充类的当前实例。我还有一个population函数,它允许我重新初始化这个类的一个给定实例,如果出于某种原因我需要(例如,如果类占用了大量内存,而不是创建类的单独实例,我只想覆盖一个实例。在

但是,当我将这段代码放入IDE(pycharm)时,它会抛出一个警告,指出实例属性是在__init__之外定义的。显然这不会影响代码的操作,一切正常,但我想知道在这种情况下是否有任何理由注意警告。在调用loadData method之前,我可以在init方法中将所有属性初始化为某个默认值,但这对我来说似乎是不必要的工作,而且会减慢执行速度(尽管数量很小)。实际上,我还可以拥有loadData方法的两个副本,一个在__init__方法中,另一个作为实际方法,但这似乎又是不必要的额外工作。在

总的来说,我的问题是在这种情况下,最好的做法是什么。有什么理由我应该用我在上一段提到的方法来重新构造代码,还是这只是一个IDE的实例,其中包含了太多的代码检查警告。我可以很明显地看到一些例子,这个警告是值得考虑的,但以我目前的经验来看,在这种情况下它看起来并不是一个问题。在

最后

以上就是忧郁石头为你收集整理的定义一个python类有属性和方法_与在另一个类方法python中定义一个类属性不同,它是在...的全部内容,希望文章能够帮你解决定义一个python类有属性和方法_与在另一个类方法python中定义一个类属性不同,它是在...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部