Python类的访问限制
使用两个_将变量设置为private,访问变量可定义get方法,对变量值修改可定义set方法,修改变量值的时候可检查参数的有效性。
class Student(object):
#定义一个Student类,
def __init__(self, name, score,age,gender):
self.__name = name
self.__score = score
self.__age = age
self.__gender = gender
#使用两个_对变量进行私有化,其实例对象不可直接调用变量
def get_name(self):
return self.__name
def get_grade(self):
return self.__grade
def get_age(self):
return self.__age
def get_gender(self):
return self.__gender
#定义类方法get获取name、grade、age
def set_name(self,name):
self.__name = name
def set_score(self,score):
self.__score = score
def set_age(self,age):
self.__age = age
def set_gender(self,gender):
if gender == 'man':
self.__gender = gender
elif gender == 'girl':
self.__gender = gender
else:
print('gender,参数提供错误,请重新修改')
#定义类方法set,更改变量值
st1 = Student('lingyummu',67,25,'boy')
#创建一个Student类对象st1
print(st1.get_name(),st1.get_gender())
#使用get方法获取变量值
st1.set_name('zhangsan')
#使用set方法修改变量值
print(st1.get_name())
st1.set_gender('boy')
print(st1.get_gender())
读书和健身总有一个在路上
Python类的访问限制的更多相关文章
- Python类属性访问的魔法方法
Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- ...
- python类内init外声明的属性与init内声明的对象属性的访问和操作区别
python类内init外声明的属性与init内声明的对象属性的访问和操作区别(面试题) 1.在ipython中输入以下代码,其输出会是什么? In [1]: class ClassOut: ...: ...
- 如何访问python类中的私有方法
在python中,不像c#/java类语言,支持类的私有方法,这点有点像objc,虽然objc可以通过扩展extension来实现,但源于objc的运行时特性,我们还是可以通过非常手段来进行访问的.不 ...
- python类访问限制
1.类的访问限制:要让内部属性不被外部访问,可以把在属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问 ...
- python 类属性与方法
Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...
- python 类以及单例模式
python 也有面向对象的思想,则一切皆对象 python 中定义一个类: class student: count = 0 books = [] def __init__(self ...
- Python类属性,实例属性
1.Python类数据属性:定义在类里面但在函数外面的变量,它们都是静态的. #一段很简单的代码,但反应了很多 >>> class A(): a=1 #一个类里面有个属性a > ...
- python类及其方法
python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中 ...
- python - 类成员修饰符
在java,c#类的成员修饰符包括,公有.私有.程序集可用的.受保护的. 对于python来说,只有两个成员修饰符:公有成员,私有成员 成员修饰符是来修饰谁呢?当然是修饰成员了.那么python类的成 ...
随机推荐
- OpenFOAM当中物性参数的设置
固体当中物性参数的设置: FoamFile { version 2.0; format ascii; class dictionary; object thermophysicalProperties ...
- mac使用crawlab
这里采用docker-compose的 第一步拉镜像 docker pull tikazyq/crawlab:latest 第二步修改compose文件 docker-compose.yml文件 ve ...
- zabbix—自动发现端口并监控
自动批量检查agent开放的端口 PS:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控: 如果服务器会随机出现端口且每次启动程序都会改变,可以采用第二种方法,来监控指定的端 ...
- Why would I want to use an ExpressionVisitor?
Why would I want to use an ExpressionVisitor? There was a issue where on the database we had fields ...
- Wamp 本地访问特别慢,原因在这
Wamp 本地访问特别慢.打开空的页面都要400ms,彻底疯了 什么localhost改为127.0.0.1 什么 清理日志缓存,都不好使, 重点在Xdebug,安装了Xdebug之后变慢 ...
- visual studio python快捷键
打开交互式窗口: alt + i 智能提示: ctrl + j, or alt + ->
- Linux Nginx naxsi
nginx naxsi 模块 - 简书https://www.jianshu.com/p/8492da04b3ba naxsi compile · nbs-system/naxsi Wikihttps ...
- js监听浏览器剪贴板
function setClipboardText(event){ event.preventDefault(); var node = document.createElement('div'); ...
- return语句——学习笔记
return,可以提前结束其所在函数. 函数内不写,会自动加上return. 非引用返回: 引用返回:a=3,b=3 注意事项: 两种修改字符串某一位置值的方式:
- Docs-.NET-C#-指南-语言参考-关键字-值类型:char
ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:char 1.返回顶部 1. char(C# 参考) 2019/10/22 char 类型关键字是 .NET System.C ...