这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:MakingamethodprivateinapythonsubclassPrivateVariablesandMethodsinPython如何在protectedpython类中定义一个只有子类才能看到的方法?这是我的代码:classBaseType(Model):def__init__(self):Model.__init__(self,self.__defaults())def__defaults(self):return{'name':{},'readonly':{},'constraints':{
这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:MakingamethodprivateinapythonsubclassPrivateVariablesandMethodsinPython如何在protectedpython类中定义一个只有子类才能看到的方法?这是我的代码:classBaseType(Model):def__init__(self):Model.__init__(self,self.__defaults())def__defaults(self):return{'name':{},'readonly':{},'constraints':{
我知道,Python中没有“真正的”私有(private)/protected方法。这种方法并不是要隐藏任何东西。我只是想了解Python是做什么的。classParent(object):def_protected(self):passdef__private(self):passclassChild(Parent):deffoo(self):self._protected()#Thisworksdefbar(self):self.__private()#Thisdoesn'twork,IgetaAttributeError:#'Child'objecthasnoattribute'
我知道,Python中没有“真正的”私有(private)/protected方法。这种方法并不是要隐藏任何东西。我只是想了解Python是做什么的。classParent(object):def_protected(self):passdef__private(self):passclassChild(Parent):deffoo(self):self._protected()#Thisworksdefbar(self):self.__private()#Thisdoesn'twork,IgetaAttributeError:#'Child'objecthasnoattribute'
在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释classParent{publicvoidmethod1(){System.out.println("PUBLICMETHOD");}privatevoidmethod2(){System.out.println("PRIVATEMETHOD");}protectedvoidmethod3(){System.out.println("PROTECTEDMETHOD");}}publicclassConsumer{publicstatic
在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释classParent{publicvoidmethod1(){System.out.println("PUBLICMETHOD");}privatevoidmethod2(){System.out.println("PRIVATEMETHOD");}protectedvoidmethod3(){System.out.println("PROTECTEDMETHOD");}}publicclassConsumer{publicstatic
如果子类在不同的包中,为什么我们不能用protected构造函数实例化一个类?如果可以访问protected变量和方法,为什么同样的规则不适用于protected构造函数?包装1:packagepack1;publicclassA{privateinta;protectedintb;publicintc;protectedA(){a=10;b=20;c=30;}}包装2:packagepack2;importpack1.A;classBextendsA{publicvoidtest(){Aobj=newA();//givescompilationerror;why?//System.o
如果子类在不同的包中,为什么我们不能用protected构造函数实例化一个类?如果可以访问protected变量和方法,为什么同样的规则不适用于protected构造函数?包装1:packagepack1;publicclassA{privateinta;protectedintb;publicintc;protectedA(){a=10;b=20;c=30;}}包装2:packagepack2;importpack1.A;classBextendsA{publicvoidtest(){Aobj=newA();//givescompilationerror;why?//System.o
如果不是:privateJButtontheButton;我这样定义一个字段:JButtontheButton;有什么区别? 最佳答案 包。它们对同一包中的其他类可见。FWIW,我通常在这些上使用我自己的无操作@Package注释,只是为了清楚地表明我知道我在做什么——我不只是忘记了一些东西。尽管它是默认设置,但包访问在高质量代码中的使用可能比其他三种可能性中的任何一种都少——有一个很大的异常(exception):在某些风格的单元测试中,希望能够访问通常是私有(private)的方法或字段。提供访问的一种方法是将它们设置为包访问,
如果不是:privateJButtontheButton;我这样定义一个字段:JButtontheButton;有什么区别? 最佳答案 包。它们对同一包中的其他类可见。FWIW,我通常在这些上使用我自己的无操作@Package注释,只是为了清楚地表明我知道我在做什么——我不只是忘记了一些东西。尽管它是默认设置,但包访问在高质量代码中的使用可能比其他三种可能性中的任何一种都少——有一个很大的异常(exception):在某些风格的单元测试中,希望能够访问通常是私有(private)的方法或字段。提供访问的一种方法是将它们设置为包访问,