精华内容
下载资源
问答
  • Python类的私有属性

    2018-08-14 10:47:00
    class Bar(object): __age = 18 sex = 'male' def __init__(self, ): pass def f(self): print(self.__age) ...# 类的私有属性无法被外部调用 # v1 = Bar.__age # 这一行会报错,...

     

    class Bar(object):
        __age = 18
        sex = 'male'
    
        def __init__(self, ):
            pass
    
        def f(self):
            print(self.__age)
    
    
    # 类的私有属性无法被外部调用
    # v1 = Bar.__age   # 这一行会报错,Bar没有__age
    print(Bar.sex)  # male
    Bar().f()  # 在类内部使用则正常
    # 如果要强行调用,怎么办, 私有属性前加下划线类名
    print(Bar._Bar__age)  # 18
    强行调用类的私有属性

     

    转载于:https://www.cnblogs.com/Neeo/p/9473195.html

    展开全文
  • 主要介绍了Python 类的私有属性和私有方法,结合实例形式分析了Python面向对象程序设计中类的私有属性与私有方法简单操作技巧,需要的朋友可以参考下
  • python类的私有属性

    2018-07-31 18:47:20
    只能初始化这些规定的属性,不能添加别的属性 class Exployee: __slots__=['id','age','name'] def __init__(self,id,age): self.id=id self.age=age def __str__(self): retrun self.id ex=...
    1. 限制属性
      只能初始化这些规定的属性,不能添加别的属性

      class Exployee:
          __slots__=['id','age','name']
          def __init__(self,id,age):
              self.id=id
              self.age=age
          def __str__(self):
              retrun self.id
      ex=Exployee('001',20)
      ex.name='tom'
      print(ex)
    2. 私有属性
      变量名以双下划线开头,只能在类内部访问,可以采用共有方法访问私有属性

      class Exployee:
          nation='china'
          def __init__(self,id,age):
              self.__id=id
              self.__age=age
          def getId(self):
              return self.__id#只读
          def setId(self,id):
              self.__id=id#只写
      ex01=Exployee('001',20)
      print(ex01.getId())#得到id
      ex01.setId('008')#改变id
      print(ex01.getId())
    3. @property

      class Exployee:
          def __init__(self,id,age)
              self.__id=id
              self.__age=age
          @property
          def age(self):
              return self.__age
          @age.setter
          def age(self,myage):
              self.__age=myage
      
          ex01=Exployee('001',20)
          print(ex01.age)
          ex01.age=22
          print(ex01.age)
    4. 类方法

      class Exployee:
          nation='china'
          __acount=0
          def __init__(self,id):
              self.__id=id
              Exployee.__acount+=1
          def __del__(self):#删除
              Exployee.__acount-=1
          @classmethod
          def show(cls):
              return cls.nation
          @classmethod
          def acount(cls):
              return cls.__acount
          @staticmethod
          def display():
              print('i am Exployee')
      ex1=Exployee('001')
      ex2=Exployee('001')
      ex3=Exployee('001')
      del ex1#删除ex1
      print(Exployee.acount)#输出2
    展开全文
  • python 类的私有属性和方法 原博客地址 https://blog.csdn.net/u013372487/article/details/51729260 类的私有属性: __private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。 在类...

    python 类的私有属性和方法

    原博客地址 https://blog.csdn.net/u013372487/article/details/51729260

    类的私有属性:

    __private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。
    在类内部的方法中使用时 self.__private_attrs。

    类的方法:

    在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数

    类的私有方法 :

    __private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。
    在类的内部调用 self.__private_methods

    实例:
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    class JustCounter:
        __secretCount = 0  # 私有变量
        publicCount = 0    # 公开变量
    
        def count(self):
            self.__secretCount += 1
            self.publicCount += 1
            print self.__secretCount
    
    counter = JustCounter()
    counter.count()
    counter.count()
    print counter.publicCount
    print counter.__secretCount  # 报错,实例不能访问私有变量
    

    Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName 访问属性,将如下代码替换以上代码的最后一行代码:
    …………………….

    print counter._JustCounter__secretCount
    

    这样就可以访问私有属性了

    展开全文
  • 80.Python类的私有属性和私有方法( 实现封装 )

    私有属性和私有方法 ( 实现封装 )

    Python对于类的成员没有严格的访问控制限制, 这与其他面向对象语言有区别; 关于私有属性和私有方法, 有如下要点:

    => 通常我们约定, 两个下划线开头的属性或方法是私有的(private); 其他为公共的(public);

    => 类内部可以访问私有属性(方法);

    => 类外部不能直接访问私有属性(方法);

    => 类外部可以通过 “_类名__私有属性(方法)名”访问私有属性(方法);

    注: 方法本质上也是属性, 只不过是可以通过()执行而已; 所以, 此处说的私有属性和共有属性, 也同时讲解了私有方法和共有方法的用法; 如下测试中, 同时也包含了私有方法和公有方法的例子;

     

    #测试私有属性,对外是私有的,对内随便用
    class Employee:
        __company = "百战成神"
        def __init__(self,name,age):
            self.name = name
            self.__age = age #两个下划线,定义成私有属性 '_Employee__age'
        def __work(self): #私有方法
            print("好好上班")
            print("年龄:{0}".format(self.__age)) #自己调本类私有属性随便调
            print(Employee.__company) #内部调用私有类属性
    
    e = Employee("张三",18)
    print(e.name)
    print(e._Employee__age) # 类外部可以通过 “_类名__私有属性(方法)名”访问私有属性(方法);
    # print(dir(e))
    e._Employee__work() #调类的私有方法
    print(Employee._Employee__company) #外部调用私有类属性
    
    输出:
    
    D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
    张三
    18
    好好上班
    年龄:18
    百战成神
    百战成神
    
    Process finished with exit code 0
    

     

    展开全文
  • Python类的私有属性与私有方法的使用

    万次阅读 多人点赞 2019-04-16 20:06:26
    1.Python中属性:类属性 ,实例属性,私有属性的使用 在Python中的属性分为:类属性和对象(实例)属性: 1.类属性就是属于类所有,可以直接用类名.属性名直接调用,类的属性在内存中只有一份。实例属性就是在__init__...
  • 2.定义方式, 在属性名或方法名前增加两个下划线,定义就是私有属性或方法 #其实这仅仅这是一种变形操作且仅仅只在定义阶段发生变形 #中所有双下划线开头名称如__x都会在定义时自动变形成:_类名__x...
  • python类的私有属性和公共属性

    千次阅读 2018-05-20 17:17:43
    类的私有属性便是在前面加上“__”标识符,而公共属性则不必。在类的外面访问私有属性会引发异常。class Base: def __init__(self, value): self.__value = value b = Base(5) print(assert b.__value) Trac...
  • Python 对于类的成员没有严格的访问控制限制 关于私有 属性和私有方法,有如下要点: 两个下划线开头的属性是私有的(private)。其他为公共的(public)。 类内部可以访问私有属性(方法) 类外部不能直接访问私有属性...
  • 类的私有属性: __private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。 在类内部的方法中使用时 self.__private_attrs。 类的方法: 在类地内部,使用def关键字可以为类定义一个...
  • _x: 单前置下划线,私有属性或方法,from somemodule import 禁止导入,对象和子类可以访问 _xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,用户...
  • __xx:私有变量或方法(伪私有),外部不能直接访问。 __xx__:公有变量或方法,子类可以访问。魔法方法或属性(例如:__init__),不推荐这样命名。 xx_:公有变量或方法。一般为了避免和python关键字冲突,不推荐这样...
  • 在一个中定义的属性(无论是类属性还是实例属性),如果是以 双下划线 (__) 开头,那么这个属性是对外 (包括其子类中) 不可见,类似于 java 中 private 属性。如何做到这一点呢, 毕竟 P...
  • 类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。 类的方法 在类的内部,使用 def 关键字可以为类定义一个...
  • Python类私有属性

    2017-05-26 11:05:00
    ''' 私有属性 说明: 1.私有属性不能在外面通过实例调用 ...3.私有属性对外面是隐藏 ''' class Animal(object): hobbie = "meat" def __init__(self,name): self.name = name self.__num =...
  • python-类的私有属性和私有方法
  • Python类的私有属性和私有方法

    千次阅读 2019-06-05 14:49:08
    Python类中的私有属性和私有方法 Python是面向对象的语言,在Python里一切皆对象,...这种情况下,可以使用类的私有属性和私有方法。 一、私有属性 Python中通过一对前缀下划线“__”的属性名来定义私有属性。 ...
  • 类的共有属性 私有属性 实例属性 class parent(): i=1 __j=2 class child(parent): m=3 __n=4 def __init__(self,age,name): self.age=age self.name=name d...
  • 私有属性是对象不希望公开的属性,私有方法是对象不希望公开的方法。在定义私有属性和私有方法时,在...继承中私有属性和私有方法问题:子类不能继承父类的私有属性,不能调用父类的私有方法。 父类中的私有属性...
  • 关于Python的私有属性和私有方法 Python对于类的成员没有严格的访问控制限制,这与其他面相对对象语言有区别。关于私有属性和私有方法,有如下要点: 1、通常我们约定,两个下划线开头的属性是私有的(private)。...
  • 该文章转载于 Python 类的私有变量和私有方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/08 8:46 # @Author : lijunjiang # @File : class3.py """ 类的私有变量和私有方法 在Python中可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,779
精华内容 1,111
关键字:

python类的私有属性

python 订阅