安排定义

时间:2011-01-28 17:32:37

标签: python oop function

在python中有一种方法可以声明def而无需将其放入课堂。所以,如果我只需要在分离的类中存储许多def,我应该这样做:

def first_method():
    pass

def second_method():
    pass

并且不使用@classmethod@staticmethod?:

class methods():

    @classmethod
    def first_method(cls):
        pass

    @staticmethod
    def second_method():
        pass

如果第一种方式是正确的,我应该如何标记私人和公共方法?

2 个答案:

答案 0 :(得分:3)

是。只需保留非实例方法的函数。

你的想法就像在Java中一样。 Python不是Java。 Python没有真正的方法来使用公共和私有方法 - 您可以更改名称以表明您希望某种形式的隐私(___在名称的开头),但这是不可执行的。

我发现在我用Python编程的所有时间里,我都不希望访问修饰符。

答案 1 :(得分:3)

Python中没有私有和公共方法。按照惯例,以单个下划线开头的名称被视为“私有”,在某种意义上,用户不应该依赖它们的存在。此外,您可以记录公共界面。其余所有都没有关系。

我会说,这套温和相关的功能将是一个更加琐碎的解决方案。