zoukankan      html  css  js  c++  java
  • Python学习笔记(十五):类基础

    以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话


    2013-7-24 23:59 学习笔记

    1,Python中的大多数OOP故事都可以简化为一个表达式:object.attribute 当类启用时,为了找出attribute首次出现的地方,Python会先搜索Object,然后是该对象之上的所有类,安装由下至上、由左至右的方式搜索。

    2,调用类的函数时,总是隐含着类的实例。附加在实例上的属性只属于那些实例,但附加在类上的属性由所有子类和实例共享。

    3,同def一样,class也是可执行语句,执行时会产生新的类对象,并将其复制给class头部的变量名。class语句内的顶层赋值语句(不在def中)会创建类的属性,为所有实例共享。在方法内对self属性赋值会产生每个实例自己的属性。例如:

    class FirstClass:
    	def setData(self, value):
    		self.data = value
    	
    	def display(self):
    		print self.data
    		
    x = FirstClass()
    y = FirstClass()
    x.setData(3.14)
    y.setData('hello world')
    x.display()
    y.display()

    输出结果为:

    3.14
    hello world


    4,超类列在了类开头的括号中。类从超类中继承所有可读属性。例如:

    class FirstClass:
    	def setData(self, value):
    		self.data = value
    	
    	def display(self):
    		print self.data
    		
    class SecondClass(FirstClass):
    	def display(self):
    		print 'secondClass: %s' %self.data
    		
    
    x = SecondClass()
    x.setData('linlin')
    x.display()

    输出结果为:

    secondClass: linlin


    5,类名称总是存在于模块中,类也是模块的属性。

    6,Python通过在类中定义双下划线命名的方法(具体的方法名,Python已经规定好)来实现运算符重载。__init__方法则实现的是构造函数。例如:

    class FirstClass:
    	def setData(self, value):
    		self.data = value
    	
    	def display(self):
    		print self.data
    		
    class SecondClass(FirstClass):
    	def __init__(self, value):
    		self.data = value
    	
    	def __add__(self, other):
    		return SecondClass(self.data + other)
    	
    	def __mul__(self, other):
    		return SecondClass(self.data * other)
    		
    x = SecondClass('linlin')
    x.display()
    y = x + 'mo'
    y.display()
    z = x * 3
    z.display()

    输出结果为:

    linlin
    linlinmo
    linlinlinlinlinlin






  • 相关阅读:
    2017-3-13 SQL server 表连接
    2017-3-13 SQL server 函数(聚合函数,数学函数,字符串函数,转换函数,时间日期函数)
    2017-3-10 SQL server T-sql语句 高级查询
    2017-3-10 SQL server 数据库 T--SQL语句
    layer框架使用的问题汇总
    pulic——功能性(自己写完测试的)list转树
    bootstrap的datetimepicker使用(1.将默认的英文设置为中文2.选择日月年的时候记录之前的操作)
    临时笔记0318
    最简单的多线程代码,一句话就可以使用
    scrollview滑动到某区域执行某种方法
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3214935.html
Copyright © 2011-2022 走看看