类的基础介绍
来源:互联网 发布:网络米虫是什么意思 编辑:程序博客网 时间:2024/06/07 00:04
- 1类名
- 2属性
- 3方法def 方法名selfargs
1、类名:
命名规则:大驼峰
两种类:
经典类
class 类名: 方法列表
* 新式类:*
class 类名(object): 方法列表
2、属性:
对象直接添加属性:
# 定义类class Cat(object): def soud(self): print ("喵~~~~")# 创建一个对象,并用变量cat1来保存它的引用cat1 = Cat()# 给这个对象添加属性cat1.color = '白色'cat1.foot_num = 4# 猫的行为cat1.soud() #喵~~~~print cat1.color #白色
__init__设置属性: 创建对象后,python解释器默认调用init()方法;
class 类名(object): def __init__(self): # 各个属性 self.属性名 = 属性值
- init(self)中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么除了self作为第一个形参外还需要2个形参
- init(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去
- 理解self:就是du对象本身。—-某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可
python的魔法方法:方法名如果是_xxxx_()的,那么就有特殊的功能,因此叫做“魔法”方法;
当使用print输出对象的时候,只要自己定义了_str_(self)方法,那么就会打印从在这个方法中return的数据
保护对象的属性—–避免非法设置属性值
如果有一个对象,当需要对其进行修改属性时,有2种方法
* 对象名.属性名 = 数据 —->直接修改
* 对象名.方法名() —->间接修改
class Cat: def __init__(self,name): self.name = name self.age = 1cat2 = Cat('小阿布')# 修改属性cat2.age = -2 # 这明显是不符合规则的
为了更好的保存属性安全,即不能随意修改,一般的处理方式为
* 将属性定义为私有属性self.__name = name
* 添加一个可以调用的方法,供调用
class Cat: def __init__(self,name): self.name = name def set_age(self, new_age): if age > 0 and age < 50: self.age = new_age else: self.age = 0 def get_age(self): return self.age# 创建对象cat2 = Cat('小怂')cat2.set_age(-10)print cat2.get_age() # 0cat2.set_age(5)print cat2.get_age() # 5
* 如果在属性名前面加了2个下划线’__’,则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。*
3、方法:def 方法名(self,args,…):
私有化方法__方法名(self,args,kwrg): 不能直接被调用,可用:对象._类名__方法名(参数) 进行调用
应用: 实际工作中,有时候需要调用一些需要经过验证的接口
还有一些高级点的方法在下一章介绍
阅读全文
0 0
- 类的基础介绍
- 关于类的基础介绍
- java基础之String类的介绍
- JAVA基础之String类的介绍
- jbpm的基础介绍
- ANT的基础介绍
- html的基础介绍
- 基础的计算机介绍
- 基础多线程的介绍
- 照相的基础介绍
- HTML5的基础介绍
- crtmpserver基础类介绍
- android的window基础介绍。
- Telnet客户端的基础介绍
- java基础多线程的介绍
- C++指针的基础介绍
- 线段树的基础介绍
- Java函数的基础介绍
- L1-003.个位数统计
- 编程练习——字符串翻转
- c++(11)使用librdkafka库实现kafka的消费实例
- Qt5-ubuntu16.04 fcitx输入法
- Position属性四个值:static、fixed、absolute和relative的区别和用法
- 类的基础介绍
- Python的dict字典结构操作方法学习笔记
- 获取?后的页面间传值
- Ubuntu 编译安装faster rcnn(matlab)
- HDU 1418
- jsp页面上去掉时间后面的.0
- 多sku对应的市场销量---非多线程
- Kettle调用Java文件(Jar包)
- 用命令删除某个文件里的指定内容