属性分为静态属性和动态属性,静态属性就是变量,动态属性就是方法。但是一般我们说的属性就是变量,方法就是方法。
私有属性/方法就是外面访问不了,只有自己能够访问的属性/方法。
如何将属性和方法分别变成私有属性和私有方法?就是在属性名或方法名前面加“__”(两个下划线)即可。

#Author:Zheng Na

class Role:

    def __init__(self,name,role,weapon,life_value=100,money=15000):
self.name = name
self.role = role
self.weapon = weapon
self.__life_value = life_value # 私有属性:将这个变量隐藏了
self.money = money def show_status(self):
print("name:%s role:%s weapon:%s life_value:%s" %(self.name,self.role,self.weapon,self.__life_value)) def __buy_gun(self,gun_name): # 私有方法
print("%s just bought %s" %(self.name,gun_name)) def got_shot(self):
self.__life_value -=50
print("ah...I got shot...") r1 = Role("Alex","Policeman","AK47")
# print(r1.__life_value) #私有属性外面访问不了,报错:AttributeError: 'Role' object has no attribute '__life_value'
# r1.__buy_gun("AK47") #私有方法外面访问不了,报错:AttributeError: 'Role' object has no attribute '__buy_gun'
r1.got_shot() ##私有属性外面访问不了,但是里面可以改
# 如果你要查看一下这个属性的值,可以定义一个方法
r1.show_status() # name:Alex role:Policeman weapon:AK47 life_value:50

  

Python3学习之路~6.5 私有属性和私有方法的更多相关文章

  1. Python3学习之路~0 目录

    目录 Python3学习之路~2.1 列表.元组操作 Python3学习之路~2.2 简单的购物车程序 Python3学习之路~2.3 字符串操作 Python3学习之路~2.4 字典操作 Pytho ...

  2. python面向对象学习(三)私有属性和私有方法

    目录 1. 应用场景和定义方式 2. 伪私有属性和私有方法 在java或者其他的编程语言中,使用访问修饰符来限制属性和方法的访问级别,一般有public.protected.default.priva ...

  3. JavaScript 新语法详解:Class 的私有属性与私有方法

    译者按: 为什么偏要用 # 符号? 原文:JavaScript's new #private class fields 译者:Fundebug 本文采用意译,版权归原作者所有 proposal-cla ...

  4. python私有属性和私有方法

    私有属性和私有方法 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私 ...

  5. python-面向对象-06_私有属性和私有方法

    私有属性和私有方法 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私 ...

  6. Python面向对象之私有属性和私有方法

    01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象  ...

  7. 私有属性和私有方法l

    class Woman: def __init__(self, name): self.name=name self.__age=18 def __secret(self): print(" ...

  8. day16-封装(私有静态属性、私有属性、私有方法、类方法、静态方法)

    # 一: class P: __age = 30 #私有静态属性 def __init__(self,name): self.__name = name #私有属性:属性名前面加上双下划线是私有属性. ...

  9. python (伪)私有属性和私有方法

    1.定义方式 在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法. 2.为什么要定义私有属性和私有方法 在实际开发中,对象的某些属性或方法只希望在对象的内部被使用,而不希 ...

随机推荐

  1. Chrome浏览器端调试JavaScript

    1. 一个超级简单的html文件拉入chrome浏览器 2. 右键-->检查 3. 点击Sources 4. html的12行加个断点 5. 刷新页面,点开Console面板,输入变量num,我 ...

  2. c++ typedef和#define的作用范围

    typedef: 如果放在所有函数之外,它的作用域就是从它定义开始直到文件尾: 如果放在某个函数内,定义域就是从定义开始直到该函数结尾: #define: 不管是在某个函数内,还是在所有函数之外,作用 ...

  3. ansj分词原理

    ansj第一步会进行原子切分和全切分,并且是在同时进行的.所谓原子,是指短句中不可分割的最小语素单位.例如,一个汉字就是一个原子.全切分,就是把一句话中的所有词都找出来,只要是字典中有的就找出来.例如 ...

  4. nginx关闭目录浏览功能

    nginx图片服务器,因为图片的敏感度,不允许直接访问图片的目录: 需要修改配置文件,去掉 autoindex on; 重启nginx即可 location /soft { #autoindex on ...

  5. mui---开发直播APP

    因项目需要,需要开发一款直播类的APP,采用的技术是MUI,找到的参考文档如下: http://ask.dcloud.net.cn/article/13416

  6. WPF 打开指定文件路径的文件资源管理器

    x 需求是想让WPF打开一个指定文件路径的文件夹,但是搜出来的八成都是<打开文件>的这样的↓ Microsoft.Win32.OpenFileDialog open_file = new ...

  7. Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\tasks.c,2806

    Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 ...

  8. linux 背单词

    命令缩写: ls:list(列出目录内容) cd:Change Directory(改变目录) su:switch user 切换用户rpm:redhat package manager 红帽子打包管 ...

  9. H. GSS and Simple Math Problem 高精度乘法模板

    链接:https://www.nowcoder.com/acm/contest/104/G来源:牛客网 题目描述 Given n positive integers , your task is to ...

  10. IndentationError: expected an indented block 在继承中出现的问题:未完

    1. class Foo(object): def __init__(self,name,price,period): self.name=name self.price=price self.per ...