Skip to main content
 首页 » 编程设计

Python:默认使用私有(private)静态方法

2025年05月04日14cyq1162

我有一个接受函数的类成员:

class A: 
 
    def func(self, method): 
       ... 

我想设置一个默认方法,因为 99% 的时间都需要这种行为。 此默认行为是静态的,因为它不依赖于类的任何成员。但是,我希望这个默认方法是私有(private)的并且对用户不可见。有什么办法可以做到这一点?

这是我试过的:

  1. class A: 
     
        @staticmethod 
        def __meth(x): 
           pass 
     
        def func(self, method = meth): 
           pass 
    

    错误:'staticmethod' 对象不可调用

  2. class A: 
     
        @staticmethod 
        def __meth(x): 
           pass 
     
        def func(self, method = A.__meth): 
           pass 
    

    错误:NameError:名称“A”未定义

  3. class A: 
     
        @staticmethod 
        def __meth(x): 
           pass 
     
        def func(self, method = self.__meth): 
           pass 
    

    错误:NameError:未定义名称“self”

我正在使用 Python 3.5,不想依赖更新的功能。

请您参考如下方法:

使用 None 作为默认值并根据需要分配它是相当惯用的:

class A: 
 
    @staticmethod 
    def __meth(x): 
        print(x) 
 
    def func(self, method=None): 
        if method is None: 
            method = self.__meth 
 
        method("x")