[代码笔记] python之 类和对象(Just syntax)
来源:互联网 发布:淘宝网第三方支付平台 编辑:程序博客网 时间:2024/05/01 09:30
最基础的一个类:
具有类变量,类方法,构造方法,类私有变量
#!/usr/bin/python3#文件名: demo_class.pyclass Person: #定义类变量,私有变量(加__) name='Guddqs' age=0 __height=167 #定义构造方法 def __init__(self,name,age,height): self.name= name self.age=age self.height=height #定义其他方法 def sayHello(self): print('%s 说: 我 %d 岁,并且高达 %d cm'%(self.name,self.age,self.height))#开始测试m = Person('Guddqs',19,277)m.sayHello()#看起来和java挺像的
输出如下:
Guddqs 说: 我 19 岁,并且高达 277 cm
继承与多态
先来一个最简单的继承
#!/usr/bin/python3#文件名: demo_class_extend.pyclass Pet: nickName='Empty' sex='Not Definited' def __init__(self): print('宠物名称是 %s ,宠物性别是%s'%(self.nickName,self.sex))class Penguin(Pet): #Nothing Definited passp=Penguin()
打印如下:
宠物名称是 Empty ,宠物性别是Not Definited
加强版
#!/usr/bin/python3#文件名: demo_class_extend.py#经过测试,python3 不支持函数重载,支持重写class Pet: nickName='Empty' sex='Not Definited' def __init__(self,name,sex): self.nickName=name self.sex=sex def hello(self): print('宠物名称是 %s ,宠物性别是%s'%(self.nickName,self.sex)) def hello(self): print('宠物名称是 %s ,宠物性别是%s'%(self.nickName,self.sex))#带__的都是私有的,私有变量,私有方法如下(方法必须带有self参数,且为第一个):class Penguin(Pet): #Nothing Definited __weight=0 def __sleep(self): pass def hello(self): print('这是重载后的hello方法!')p=Penguin('贝贝','母')p.hello()#访问重写后的方法print(p.__weight)#访问私有成员,出现未找到错误!
打印如下:
这是重载后的hello方法!
Traceback (most recent call last):
File “C:/aguggqs/apython/demo_class_extend.py”, line 34, in
print(p.__weight)#访问私有成员,出现未找到错误!
AttributeError: ‘Penguin’ object has no attribute ‘__weight’
最后说下python中的特殊方法重载
#!/usr/bin/python3#文件名: demo_class_overload.py#python 的专有方法重载,实现算数重载class Result: #定义语文成绩和数学成绩 china=100 math=200 #print(china) #在这里直接写程序语句,居然可以运行 #重载类的专有方法(加,减,乘,除) """ __init__ : 构造函数,在生成对象时调用 __del__ : 析构函数,释放对象时使用 __repr__ : 打印,转换 __setitem__ : 按照索引赋值 __getitem__: 按照索引获取值 __len__: 获得长度 __cmp__: 比较运算 __call__: 函数调用 __add__: 加运算 __sub__: 减运算 __mul__: 乘运算 __div__: 除运算 __mod__: 求余运算 """ def __init__(self,china,math): self.china=china self.math=math #定义算数方法,省略其他 def __add__(self,other): return Result(self.china+other.china,self.math+other.math) def __str__(self): return repr('Result {china: %d ,math: %d}'%(self.china,self.math))#开始测试xm=Result(100,20)xh=Result(80,90)print(xm+xh)
输出如下:
‘Result {china: 180 ,math: 110}’
0 0
- [代码笔记] python之 类和对象(Just syntax)
- python学习笔记13--类和对象
- Python学习笔记 类和对象
- Python学习笔记--类和对象
- python笔记之面向对象
- [代码笔记] python 之JSON 使用和 Time,datetime
- Python笔记--变量和对象
- [Eclipse笔记]Just for fun – 在Eclipse下编译和运行C#的代码
- python错误之SyntaxError: invalid syntax
- 《Python学习手册》学习笔记(26)之第26章类代码编写基础(关键词:编程语言/Python/OOP/面向对象/类)
- 《Python学习手册》学习笔记(28)之第28章类代码编写细节(关键词:编程语言/Python/OOP/面向对象/类)
- Python自学笔记(二)对象和类
- python入门笔记-类和对象定义及调用
- 【Python学习笔记】面向对象编程:类和实例
- 6.13-Python-语言及其应用-笔记-对象和类--未完!
- python cookbook学习笔记十六:类和对象(1)
- python学习笔记——类和对象
- python学习笔记(九)——类和对象
- 为什么实体类要实现序列化?
- fragment 静态用法 InflateException 的解决方案
- OpenDialog/SaveDialog 中 Filter用法
- 解决shell命令行只显示-bash-4.1#不显示用户和路径方法
- MATLAB robot toolbox 机械臂轨迹规划
- [代码笔记] python之 类和对象(Just syntax)
- 9大浏览器端缓存机制分析
- SQL SEVER Case 的使用
- C++中vector模板详解
- [李景山php]每天TP5-20170120|thinkphp5-Process.php-2
- OCP认证之Oracle的SQL语言基础(一)
- 用vim格式化代码(转)
- sonarqube6启动失败
- C++ map的基本操作和用法