精华内容
下载资源
问答
  • python访问私有方法
    2022-05-09 12:50:22

    1、可以通过先查看类储存空间中有多少变量和方法

    class MakeBarPie:
        location=''
        def __init__(self,name)
            self.name name
        def __get_path_list(self)
            pass
    
    print(MakeBarPie.__dict__)
    
    

    2、原则上,对于实例化对象来说,私有的方法和属性是不能访问的,但在python中对于私有控制,是在储存空间中改变了其名称,导致通过对于直接去原来的名字是访问不到的。

    makebar= MakeBarPie(name='lhz')
    #访问私有的__get_path_list()方法
    
    makebar._MakeBarPie.__get_path_list()
    
    # 实例化对象._类名.私有方法或属性

    更多相关内容
  • python如何访问私有方法

    千次阅读 2021-02-04 08:10:08
    python访问私有方法的方法 :通过“实例类.类名_变量名”可对私有方法进行访问。在python中,不像c#/java类语言,支持类的私有方法,这点有点像objc,虽然objc可以通过扩展extension来实现,但源于objc的运行时特性...

    python访问私有方法的方法 :通过“实例类.类名_变量名”可对私有方法进行访问。

    c61a67bde74ba874d21d719b6b920939.png

    在python中,不像c#/java类语言,支持类的私有方法,这点有点像objc,虽然objc可以通过扩展extension来实现,但源于objc的运行时特性,我们还是可以通过非常手段来进行访问的。不过这点说白了,好像c#中也可以通过指定BindingFlags.NonPublic的方式结合反射来调用。

    假设有如下一个python类:class Securityp(object):

    def __inaccessible(self):3

    print "Bet you can't see me..."

    而s是Securityp的一个实例,我们直接使用 s.__inaccessible()是会报错的,通过在一个方法前面加上两个下划线的方法来让一个方法成为私有方法。

    那我们应该怎么来访问这个所谓的私有方法呢,s._Securityp__inaccessible()

    上述代码就可以让我来访问了。这是因为,在python的解析器中,所有以双下划线开头的方法都会被翻译成前面加上单下划线和类名的形式。

    这样我们就可以访问类中私有方法了。

    展开全文
  • Python是个开放的语言,默认情况下所有的属性和方法都是公开的 或者叫公有方法,不像C++和 Java中有明确的public,private 关键字来区分私有公有。 Python默认的成员函数和成员变量都是公开的,类的私有属性指只有在...
  • 下面小编就为大家带来一篇python直接访问私有属性的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • python类中私有成员和方法访问

    千次阅读 2021-10-10 11:00:21
    1.私有成员的访问 python类中的私有成员和方法内的私有成员(在python中以__开头的变量),在类外只能通过类中定义的方法来进行访问,...2.私有方法访问 一般类中定义的方法有四大类:公有方法,私有方法,静态方法,

    1.私有成员的访问

    python类中的私有成员和方法内的私有成员(在python中以__开头的变量),在类外只能通过类中定义的方法来进行访问,或者用一种特殊的方式a._A__value(a是对象,A是相应的类,value是私有成员)来访问,不能在类外使用a.__value这种通过对象的方式直接进行访问;在类中访问调用的话,属于类的私有成员通过A.__value来进行调用,属于方法的私有成员则通过self.__value来进行访问

    2.私有方法的访问

    一般类中定义的方法有四大类:公有方法,私有方法,静态方法,类方法
    其中 公有方法,私有方法 属于对象(定义这些方法的第一个参数都为self),私有方法以两个下划线__开始,在这两类方法中可以访问属于类和对象的成员;
    公有方法通过对象名直接调用如a.show(),私有方法则不能直接通过对象名调用,只能在属于对象方法中通过self调用如在a.show()这个方法中调用:eg在a.show()方法的代码中调用私有方法self.__private(),或者用一种特殊的python支持的方法进行调用;
    如果通过类名来调用属于对象的公有方法,则必须显式的为该方法的self参数传递一个对象名;eg: A.show(a),用来明确是哪个对象。
    静态方法和类方法 可以通过类名和对象名直接进行调用,但是这两个方法不能访问属于对象的成员,但可以访问属于类的成员。

    展开全文
  • 主要介绍了Python私有属性私有方法应用场景解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 1.在一个类中,写了__str__(self)方法和不写的区别 class User(object): def __init__(self,name,age,gender): self.name = name self.age = age self.gender = gender def __str__(self): return "name = ...

    方法一:get , set 方法 。

    方法二:property方法

    方法三:通过装饰器@property


    1.在一个类中,写了__str__(self)方法和不写的区别

    class User(object):
        def __init__(self,name,age,gender):
            self.name = name
            self.age = age
            self.gender = gender
    
        def __str__(self):
            return "name = " + self.name
           
    
    u1 = User("张三","19","female")
    print(u1)
    >>>#打印结果
    name = 张三 
    
    class User(object):
        def __init__(self,name,age,gender):
            self.name = name
            self.age = age
            self.gender = gender
           
    
    u1 = User("张三","19","female")
    print(u1)
    >>>#打印结果
    <__main__.User object at 0x000001A55AB7E940>  #对象在内存里存的地址
    

    2.私有属性不能供外界访问,私有属性前有两个下划线如:__name、__age.....

    解决这一问题三个方法

    ①get( ) 和 set( )

    ②property 方法 (此方法需要借助于get、set方法)

    ③通过装饰器 装饰器:@property

    下面依次说明:

    class User(object):
        def __init__(self,name,age,gender):
            self.__name = name #此处的name、age、gender都是私有属性
            self.__age = age
            self.__gender = gender
    
        def __str__(self):
            return "name = " + self.__name
    
    u1 = User("张三","19","male")
    print(u1.__name) #私有属性不能供外界访问
    >>>
    发生异常:'User' object has no attribute '__name' 

    方法一:get , set 方法 。

    访问私有属性可以用这个方法,但在使用过程中需要频繁的调用自定义方法

    比如说:想更改一次年龄时,就需要u1.set_age("年龄")

    #定义两个私有属性age,gender
    #1.get()方法-------定义对私有属性的get方法,获取私有属性
    class User(object):
        def __init__(self,name,age,gender):
            self.name = name
            self.__age = age
            self.__gender = gender
    
        def __str__(self):
            return "我的姓名是:" + self.name + " , 我的年龄是:" + self.__age + " , 我的性别是:" + self.__gender
    
        def get_age(self):    
            return self.__age 
    
    u1 = User("张三","19","female")
    print(u1.get_age())
    >>>
    19
    
    #2.set()方法------定义对私有属性的重新赋值的set方法,重置私有属性
    class User(object):
        def __init__(self,name,age,gender):
            self.name = name
            self.__age = age
            self.__gender = gender
    
        def __str__(self):
            return "我的姓名是:" + self.name + " , 我的年龄是:" + self.__age + " , 我的性别是:" + self.__gender
    
        def set_age(self,age): #解决手段二 调用set方法,并更改属性值
            self.__age = age
    
    u1 = User("张三","19","female")
    u1.set_age("25")
    print(u1)
    >>>
    我的姓名是:张三 , 我的年龄是:25 , 我的性别是:female
    
    #get()和set()
    class User(object):
        def __init__(self,name,age,gender):
            self.name = name
            self.__age = age
            self.__gender = gender
    
        def __str__(self):
            return "我的姓名是:" + self.name + " , 我的年龄是:" + self.__age + " , 我的性别是:" + self.__gender
    
        def get_age(self):  
            return self.__age 
    
        def set_age(self,age):
            self.__age = age
    
    u1 = User("张三","19","female")
    print(u1.get_age())
    u1.set_age("25")
    print(u1)
    >>>
    19
    我的姓名是:张三 , 我的年龄是:25 , 我的性别是:female

    方法二:property方法

    property方法是对get , set 方法的封装。

    class User(object):
        def __init__(self,name,age,gender):
            self.__name = name #此处的name、age、gender都是私有属性
            self.__age = age
            self.__gender = gender
    
        def __str__(self):
            return "name = " + self.__name +", age = " + self.__age + ", gender = " + self.__gender
                        
        def get_name(self):
            return self.__name 
       
        def set_name(self,name):
            self.__name = name
    
        namer = property(get_name,set_name) #property里面放两个参数,get方法和set方法
    
    u1 = User("张三","19","male")
    print(u1.namer)       #要获取对象里的属性时,调property里的第一个参数即get方法
    u1.namer = "王五"     #要修改对象里的属性时,调property里的第二个参数即set方法
    print(u1)
    
    >>>
    张三
    name = 王五, age = 19, gender = male

    方法三:通过装饰器@property

    通过装饰器@property 在get方法上进行装饰,在@property下写的代码,跟写get方法意义一样。set方法通过 名称.setter来直接进行装饰(注意:名称要和@property下定义的方法名一致)

    class User(object):
        def __init__(self,name,age,gender):
            self.__name = name #此处的name、age、gender都是私有属性
            self.__age = age
            self.__gender = gender
    
        def __str__(self):
            return "name = " + self.__name + ", age = " + self.__age + " , gender = " + self.__gender
        #property下面默认跟的是get方法
        @property             
        def name(self): #1处
            return self.__name 
        #这里的@后跟的是 上面的函数名.setter
        @name.setter  
        def name(self,name):
            self.__name = name
    
    u1 = User("张三","19","male")
    #调用 对象.属性 时,自动触发执行@property修饰的name方法,默认执行get的方法 
    print(u1.name) 
    #调用 对象.属性 = xxx 时,自动触发执行@name.setter修饰的name方法
    u1.name = "lisa" 
    print(u1)
    
    >>>
    张三
    name = lisa, age = 19 , gender = male

    展开全文
  • 本文实例讲述了python私有函数调用方法。分享给大家供大家参考,具体如下: 与大多数语言一样,Python 也有私有的概念: ① 私有函数不可以从它们的模块外面被调用 ② 私有方法不能够从它们的类外面被调用 ③ ...
  • 私有属性和私有方法
  • Python中的私有属性和私有方法
  • 在本篇文章里小编给大家整理的是一篇关于python调用私有属性的方法总结,对此有需要的朋友们可以学习下。
  • 私有方法是指在 Python 的面向对象开发过程中,对象的某些方法或者称为函数只想在对象的内部被使用,但不想在外部被访问到这些方法或函数。即:私有方法是对象不愿意公开的方法或函数。2. 语法定义在 Python 中定义...
  • Python私有属性与私有方法

    千次阅读 2022-03-17 22:43:48
    1、 场景定义 私有属性 是指在 Python 的面向对象开发过程中,对象的某些属性只想在对象的内部被使用,但不想在外部被访问到这些属性...在 Python 中定义私有属性和私有方法的语法如下: class Staff: def __ini..
  • 主要介绍了Python 类的私有属性和私有方法,结合实例形式分析了Python面向对象程序设计中类的私有属性与私有方法简单操作技巧,需要的朋友可以参考下
  • python私有属性和方法

    千次阅读 2021-10-07 17:05:21
    1、私有权限:在属性名和方法名 前面 加上两个下划线 __ 类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问; 类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问; 私有属性 ...
  • 我们知道在python语法中,给属性和方法添加私有是在属性或方法前面加__ 然后我们就无法通过正常方式访问到属性和方法,如下图所示: class Persson: def __init__(self, name): self.name = name self.__age = ...
  • python类定义私有成员和私有方法

    千次阅读 2022-04-15 22:10:07
    0 引言 在任何语言中,都会规定某些对象(属性...对于私有成员和私有方法python不像C++那样有专门的关键字定义,如private。但是也有一些方法可以做到, 那就是以双下划线__开头(但不以双下划线结尾)的成员或方法是
  • 将给大家介绍什么是私有属性和私有方法,科普一下伪私有属性和私有方法,包括如何访问。 1.私有属性和私有方法 什么是私有? 对象的某些属性或者方法,只希望在对象的内部被使用,而不希望在外部被访问 通过...
  • 私有方法就是对象不希望公开的方法 定义方式: 在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法 eg: 定义model.py 文件,核心代码如下 # 定义Person 类,包含对象属性name 和...
  • # 在变量前加上__将变量变成私有变量,类外无法使用 __interest_rate = 0.855 def __init__(self, amount, owner): self.__amount = amount self.owner = owner def desc(self): # 类内调用私有变量 print...
  • 私有属性只能在类内部使用,...###私有属性和私有方法#########在属性名和方法名前面加上 __class Person(object):def __init__(self):# 公有属性self.name = "李四"#私有属性self.__age = 18#定义公有方法def sho...
  • 1、子类对象 不能够在自己的方法内部,直接 访问 父类的 私有属性 或 私有方法; 2、子类对象 可以通过 父类 的公有方法 间接 访问到 私有属性 或 私有方法; 私有属性、方法 是对象的隐私,不对外公开,外界 以及 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,181
精华内容 26,872
关键字:

python访问私有方法