Python的类

来源:互联网 发布:约爱是什么软件 编辑:程序博客网 时间:2024/05/29 02:20

像C++一样,class语句是Python的主要面向对象编程工具,与C++不同的是,Python的class不仅是一个说明,像def一样,class是一个对象建造者,是一个隐含的赋值(运行时它产生了一个类对象,并用列在首部的类名字来引用这个对象)。

  1. 类的定义
  1. 通过继承来定制类
  1. 类可以重载Python的操作符

类的定义:

class FirstClass():    def setdata(self, value):    self.data = value    def display(self):    print(self.data)

类定义的格式如上所示,类中包含方法的定义。Python语言,一定要对齐,注意格式的规范。类的实例如下:

x = FirstClass()y = FirstClass()x.setdata("king")x.display();y.setdata(90);y.display();

king90

通过继承来定制类

类继承的思想是:

  • 超类列在类首部的括号里;

被继承的类为超类(superclass)。

  •  类从超类继承属性;
  •  实例从所有相关类中继承;

当查找一个名字时,Python先在实例中找,然后是它的类,最后是超类。

  •   通过子类改变逻辑,而不是直接改变超类;

通过在子类里覆盖超类里的名字,子类就覆盖了继承的行为。

class SecondClass(FirstClass):    def display(self):    print('current value = "%s"' %self.data)
z = SecondClass();z.setdata(43)z.display();
current value = "43"

类可以重载Python的操作符:

  • _ _X_ _的名字的方法是特殊的挂钩(hook);

Python通过特殊命名的方法拦截操作符,以实现操作符重载。

  • Python在计算操作符时会自动调用这样的方法;
  • 类可以冲定义大多数内置的操作符;
  • 操作符重载似的类与Python的对象模型紧密集成;
class ThirdClass(SecondClass):    def __init__(self,value):    self.data = value    def __add__(self,other):    return ThirdClass(self.data + other)    def __mul__(self, other):    self.data = self.data * othera = ThirdClass("abc")a.display()b = a + 'xyz'b.display()a*3a.display()
current value = "abc"current value = "abcxyz"current value = "abcabcabc"

Python和面向对象编程:

继承:在Python里是基于属性查找;

多态:对于X.method来说,method方法的含义依赖于X的类型;

封装:方法和操作符实现了行为,而数据隐藏是一种约定;

 

 

名字空间规则总结

限定型名字(object.x)和非限定型名字是不同的:

非限定型名字与作用域有关;

限定型名字使用对象object的名字空间;

(在模块与类的)作用域内初始化对象的名字空间;

 

名字空间字典:

面向对象编程和授权:

授权指的是内嵌有其他对象的控制对象,它们向内嵌对象传递响应操作请求,控制对象负责跟踪访问这样的事物。Python里授权经常是用 __gerattr__方法来实现,因为它拦截了对不存在属性的访问,一个包裹类可以用__gerattr__把请求转向被包裹的类。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 随身行李超过5kg怎么办 南航机票填错身份证怎么办 两岁宝宝坐着驼背怎么办 两岁的宝宝坐晕车怎么办 在机场丢东西了怎么办 孩子放学不按时回家怎么办?转 右腿比左腿粗2cm怎么办 八个月宝宝小腿弯怎么办 南航航班取消了怎么办 高铁不能送老人怎么办 小孩买火车票没有身份证怎么办 断奶后孩子瘦了怎么办 两岁宝宝坐飞机哭闹怎么办 八个月宝宝坐飞机哭闹怎么办 六岁儿童发烧39度怎么办 孩子坐飞机没带证件怎么办 带孩子坐飞机需要什么证件怎么办 婴儿乘飞机没带证件怎么办 吃了轮状发烧怎么办 儿童票比打折票贵怎么办 订机票订错了怎么办 如果飞机不支持婴儿票怎么办 报志愿登不上去怎么办 微单自拍是反的怎么办 蜡笔弄到桌子上怎么办 油画颜料干透了怎么办 数字油画颜料干了怎么办 数字油画的颜料干了怎么办 丙烯颜料画错了怎么办 油画的油干了怎么办 数字油画没画完颜料干了怎么办? 涂完口红很干怎么办 吃鸡匹配不到人怎么办 电脑吃鸡更新慢怎么办 苹果手机吃鸡更新不了怎么办 吃鸡更新硬盘不够怎么办 吃鸡链接不到更新服务器怎么办 6s吃鸡更新不了怎么办 凌美钢笔刮纸怎么办 毕加索钢笔不出水怎么办妙招 打印机总显示墨水已用完怎么办