精华内容
下载资源
问答
  • python 私有方法

    2019-09-26 01:15:28
    最近了解到python私有方法的来由: Python中默认的成员函数,成员变量都是公开的(public),而且python中没有类似public,private等关键词来修饰成员函数,成员变量。 在python中定义私有变量只需要在变量名或...
    最近了解到python私有方法的来由: Python中默认的成员函数,成员变量都是公开的(public),而且python中没有类似public,private等关键词来修饰成员函数,成员变量。 在python中定义私有变量只需要在变量名或函数名前加上 ”__“两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 命名混淆意在给出一个在类中定义“私有”实例变量和方法的简单途径, 避免派生类的实例变量定义产生问题,或者与外界代码中的变量搞混。 要注意的是混淆规则主要目的在于避免意外错误, 被认作为私有的变量仍然有可能被访问或修改。 在特定的场合它也是有用的,比如调试的时候, 这也是一直没有堵上这个漏洞的原因之一 (小漏洞:派生类和基类取相同的名字就可以使用基类的私有变量。)

    转载于:https://www.cnblogs.com/lph970417/p/10431107.html

    展开全文
  • python私有方法和私有属性

    万次阅读 多人点赞 2018-05-21 08:51:51
    Python默认的成员函数和成员变量都是公开的,Python 私有属性和方法没有类似别的语言的public,private等关键词来...声明该方法为私有方法,不能在类的外部调用 代码 class Test(object): #普通方法 def test(...

     

    Python默认的成员函数和成员变量都是公开的,Python 私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了

    声明该方法为私有方法,不能在类的外部调用

    代码

    class Test(object):
        #普通方法
        def test(self):
            print("普通方法test")
        #普通方法
        def _test1(self):
            print("普通方法_test1方法")
        #私有方法
        def __test2(self):
            print("私有方法__test2方法")
    
    t = Test()
    t.test()
    t._test1()
    #t.__test2()#调用的时候会报错

    执行效果

     

    外界无法访问私有方法,但可以在类内部方法私有方法。

    class Test(object):
        #私有方法
        def __test2(self):
            print("私有方法__test2方法")
        #普通方法
        def test(self):
            print("普通方法test")
        #普通方法
        def _test1(self):
            print("普通方法_test1方法")
            #可以在类内部调用私有方法
            t.__test2()#
            self.__test2()
    t = Test()
    t.test()
    t._test1()
    #t.__test2()和t.test2()#调用的时候会报错

      私有方法应用场景

     

    执行效果

    私有属性

    如果有一个对象,当需要对其进行修改属性时,有2种方法

    对象名.属性名 = 数据 ---->直接修改

    对象名.方法名() ---->间接修改

    为了更好的保存属性安全,即不能随意修改,一般的处理方式为

    将属性定义为私有属性

    添加一个可以调用的方法,供调用

    案例

    class Person(object):
        def __init__(self, name):
            self.__name = name
        def get_name(self):
            return self.__name
        def set_name(self, new_name):
            if len(new_name) >= 5:
                self.__name = new_name
            else:
                print("error:名字长度需要大于或者等于5")
    
    xiaoming = Person("skyter")
    print(xiaoming.get_name())
    #print(xiaoming.__name)#会报错

    class Person(object):
        def __init__(self, name):
            self.__name = name
    
        def get_name(self):
            return self.__name
    
        def set_name(self, new_name):
            if len(new_name) >= 5:
                self.__name = new_name
            else:
                print("error:名字长度需要大于或者等于5")
    
    
    p = Person("skyter")
    
    p.set_name("wanger")
    print(p.get_name())
    
    p.set_name("lisi")
    print(p.get_name())

    执行如图:

     总结

    Python中没有像C++中public和private这些关键字来区别公有属性和私有属性

    它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。

     

    展开全文
  • python 私有方法,私有属性 在继承中的表现 情况1:如果调用的是继承父类中的公有方法,那么,可以在这个公有方法 中访问父类的私有属性和私有方法; 情况2:如果在子类中实现了一个公有方法,那么,这个方法是不能...

    #每天一点点#

    python 私有方法,私有属性 在继承中的表现

    情况1:如果调用的是继承父类中的公有方法,那么,可以在这个公有方法
    中访问父类的私有属性和私有方法;

    情况2:如果在子类中实现了一个公有方法,那么,这个方法是不能调用
    继承的父类中的私有方法和私有属性的;

    #私有方法,私有属性在继承中的表现
    
    class A:
        def __init__(self): 
            self.num1 = 100
            self.__num2 = 200 #私有方法
            
        def test1(self):
            print('------test1------')
            
        def __test2(self): #私有属性
            print('------test2------')
            
        def test3(self):
            self.__test2()
            print(self.__num2)
            
    class B(A):
        def test4(self):
            self.__test2()
            print(self.__num2)
            
    b = B()
    b.test3()   #情况1
    b.test4()   #情况2
    

    b.test3() 输出结果 ???????
    ------test2------
    200
    b.test3() 输出结果 ???????

    -----------------------------分割线---------------------------------

    b.test4() 输出结果 ???????

    ‘B’ object has no attribute ‘_B__test2’

    b.test4() 输出结果 ???????

    在这里插入图片描述

    展开全文
  • __XXX: 双下划线开头指的是类中私有变量或私有方法名,只有类对象自己能访问,连子类对象也不能访问到这个数据 __XXX__: 系统定义名字,前后均有一个下划线代表python里特殊方法专用的标识,如_...

    _XXX:单下划线开始的成员边变量叫做保护变量,意思是只有类对象(即类实例)和子类对象自己能访问到这些变量,须通过类提供的接口进行访问,不能用”from module import *“导入

    __XXX: 双下划线开头指的是类中私有变量或私有方法名,只有类对象自己能访问,连子类对象也不能访问到这个数据

    __XXX__: 系统定义名字,前后均有一个下划线代表python里特殊方法专用的标识,如__init__()代表类的构造函数

     

    私有属性不能通过对象直接访问,但是可以通过内部方法访问

    私有的方法,不能通过对象直接访问

    私有的属性,方法,不会被子类继承,也不能被访问

    一般情况下私有的属性,方法都是不对外公布的,往往用来做内部的事情,起到安全的作用

    可以通过调用继承父类的公有方法,间接的访问父类的私有方法和属性

    展开全文
  • 私有属性、方法——Python并没有真正的私有化支持,但可用下划线得到伪私有 尽量避免定义以下划线开头的变量  (1)_xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类对象(即类实例)和子类...
  • Python私有方法与继承

    2018-04-08 14:02:38
    输出
  • python私有方法和变量

    2014-05-22 16:46:15
    class aa(object): def __init__(self): self.x = 12 self.__z = 13 def printx(self): print 'in a' print self.x print self.__z def pp(self): print '++++++++++++++++++' def __px(self): ...
  • Python私有方法不能外部调用怎么理解?

    千次阅读 多人点赞 2014-03-15 23:56:41
    class aa: def __p(self): print 'a pri' ...严格是说Python是没有私有方法的,在外部是可以通过某种方式访问的。 问题二:子类继承了私有方法么?子类能用父类的私有方法么?
  • 主要介绍了Python私有属性私有方法应用场景解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了Python 私有属性和私有方法应用场景分析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • Python私有属性、私有方法 私有属性、方法——Python并没有真正的私有化支持,但可用下划线得到伪私有 在实际开发中,类的某些属性或方法可能只希望在对象的内部被使用,而不希望在外部被访问到 私有属性就是类不...
  • python默认的成员函数和成员变量都是公开的,python 私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就...
  • 学过编程语言的人员,都知道私有变量在编程中必不可少,与Java和C语言用private关键字定义私有变量不同,Python是在变量前面加上双横杠(例如:__test)来标识...Python私有变量或方法在自身类中不能直接调用,需通...
  • python 私有变量 、 私有方法 就是 在 公有的前面 添加两个 __ 下划线,但是 在外部 实例中不能像平常那样访问,保护隐秘性 2、实例 class car(): def __init__(self): self.price = 1 # 公有变量 self.__speed ...
  • 私有属性和私有方法 应用场景及定义方式 应用场景 •在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 •私有属性 就是 对象 不希望公开的 属性 •私有方法 就是 ...
  • python私有属性及私有方法

    千次阅读 2019-02-05 20:55:10
    简介: 在其它高级编程语言,如Java、C++等...而在python中,也支持对私有属性及私有方法的控制。 设置私有属性及私有方法: class People: # 初始化参数 def __init__(self, name): self.name = name self...
  • python中定义私有变量只需要在变量名或函数名前加上 ”__“两个下划线,那么这个函数或变量就是私有的了。在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__mem...
  • python访问私有方法的方法 :通过“实例类.类名_变量名”可对私有方法进行访问。在python中,不像c#/java类语言,支持类的私有方法,这点有点像objc,虽然objc可以通过扩展extension来实现,但源于objc的运行时特性...
  • 私有方法:顾名思义,只有自己才能使用的方法,在python中,定义私有方法一般用双下划线表示:‘__’ class Sent: #私有方法(双下划线定义的,比较重要,可以通过新建一个方法调用) def __sent_msg(self): ...
  • python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别,关于私有属性和私有方法,有如下要点: 1.通常我们约定,两个下划线开头的属性是私有的(private),其他为公共的(public)。 2.类...
  • 主要介绍了Python 私有化操作,结合实例形式分析了Python私有属性、私有方法相关使用技巧,需要的朋友可以参考下
  • 主要介绍了Python 私有函数的实例详解的相关资料,希望通过本文大家能掌握Python 私有函数的使用方法,需要的朋友可以参考下
  • Python 私有方法

    2019-07-12 15:26:20
    注意 from somemodule import * 禁止导入 import somemodule 是可以导入
  • 本文实例讲述了python私有函数调用方法。分享给大家供大家参考,具体如下:与大多数语言一样,Python 也有私有的概念:① 私有函数不可以从它们的模块外面被调用② 私有方法不能够从它们的类外面被调用③ 私有...
  • Python 也有私有的概念:• 私有函数不可以从它们的模块外面被调用• 私有方法不能够从它们的类外面被调用• 私有属性不能够从它们的类外面被访问与大多数的语言不同,一个 Python 函数,方法,或属性是私有还是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,994
精华内容 33,597
关键字:

python私有方法

python 订阅