【发布时间】:2017-08-16 20:45:48
【问题描述】:
我是 OOP 的新手,正在编写需要许多 (>=9)默认“硬编码”参数的类,该参数仅用于此。
在类中定义这些的正确方法是什么?
解决方案#1
class SomeCLass():
__param1 = 'param1'
__param2 = 'param2'
__param3 = 'param3'
__param4 = 'param4'
def some_method(self):
return self.__param1
或者我应该这样做
解决方案 #2
class SomeCLass():
def __init__(self, param1 = 'param1', param2 = 'param2', ....,
...param8 = 'param'):
self.param1 = param1
谢谢
【问题讨论】:
-
这两件事是不一样的,你需要的取决于你的具体情况。
-
您在第一个示例中使用了 类属性。在第二个示例中,您的
__init__函数有一堆默认参数,您可能会将其设置为instance attributes。这些是不同的情况。此外,除非您了解它在做什么,否则不要使用双下划线名称修饰,即使那样,也可能不会...... -
此外,虽然类属性类似于 java 等语言中的静态成员,但它们根本不等同于默认参数。
-
@juanpa.arrivillaga 没有询问 java,如果您没有建议,关于您没有评论的实际问题,谢谢
-
@jonrsharpe 谢谢,以后会继续阅读
标签: python class oop python-3.6