Python入门笔记(24):Python面向对象(1)速成   
               添加时间:2013-7-15 点击量: 
 
              一、Python经典类与新类
经典类:若是没有直接或间接的子类化一个对象,也就是说若是没有指定一个父类,或者是若是子类化的根蒂根基类没有父类,那么就定义了经典类:
class classics:
    define a classics Class
    pass
新式类:与经典类相反。object是“所有类之母”,也就是基类,若是你的类没有持续任何父类,object将作为默认的父类:
class newClass(object):
    define a classics Class
    pass
二、Python的实例化
创建一个实例的过程叫实例化,在其他编程说话中一般用关键字 new ,然则在Python中没有这个关键字。而是类似函数调用的体式格式创建实例的:
class newClass(object):
    pass
inst = newClass()
print inst      #<__main__.newClass object at 0 x00B71650>
三、类最简单的用法
类最简单的用法仅仅用作名称空间,意味着将数据保存到变量中,应用句点属性标识对它们按名称空间分组。
class newClass(object):
    pass
bar = newClass()    #创建实例
bar.x = 1           #创建实例属性
bar.y = 2
print bar.x+bar.y
重视:bar.x  ,bar.y  是实例对象的属性不是类的属性。
四、办法
办法就是类的功能
办法在类中定义,只能被实例调用。
在类中,办法有一个默认参数self,这个参数代表实例本身,当用实例调用办法时,由申明器静静传递给办法。
class newClass(object):
    def method(self):
        return self
    
bar = newClass()
print bar.method()  #<__main__.newClass object at 0 x00B71910>
在其他说话中,self一般称为this,一般办用到这个实例(self),然则静态办法和类办法不须要。
五、创建类、办法、实例对象接见
class addPerson(object):
    def __init__(self,nm,ph):   #定义机关器
        self.name = nm          #设置name
        self.phone = ph         #设置phone
        print Created instance for,self.name
    def Phone(self,newph):
        self.phone = newph
        print Updated phone for,self.phone
        
josn = addPerson(JSON,1565208444)     #创建实例对象josn
ben = addPerson(Ben,15249638892)      #创建实例对象ben
print Instance property:[%s][%s] %(ben.name,ben.phone)    #接见实例属性
ben.Phone(110)
print ben.phone
六、子类
创建子类:靠持续来进行子类化,在不影响父类(基类)的根蒂根基上改进本身的功能。
如:持续上方的类
class addInfo(addPerson):
    def __init__(self,nm,ph,id,em):         #定义本身的机关器
        addPerson.__init__(self, nm, ph)    #持续父类机关器(这个很首要)
        self.empid = id
        self.email = em
        
    def Email(self,newem):
        self.email = newem
        print Updated e-mail address for:,self.name
        
zhangsan = addInfo(ZhangSan,123456789,01,ZhangSan@gmail)    #创建addInfo实例,输出Created instance for ZhangSan
print zhangsan                          #<__main__.addInfo object at 0 x00B71BD0>
print Instance property:[%s],[%s],[%s],[%s] %(zhangsan.name,zhangsan.phone,zhangsan.empid,zhangsan.email)
#输出:Instance property:[ZhangSan],[123456789],[01],[ZhangSan@gmail]
zhangsan.Phone(250)             #Updated phone for 250
zhangsan.Email(Zhang@163.com)   #Updated e-mail address for: ZhangSan
 
重视:
若是须要,每个子类好定义本身的机关器,不然的话,基类的机关器将会被调用。然而若是子类重写基类的机关器,那么基类的机关器就不会被主动调用,必须显式写出来才行,如上的:addPerson.__init__
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》
                     
                  
     
  
 
    
    
一、Python经典类与新类
经典类:若是没有直接或间接的子类化一个对象,也就是说若是没有指定一个父类,或者是若是子类化的根蒂根基类没有父类,那么就定义了经典类:
class classics:
define a classics Class
pass
新式类:与经典类相反。object是“所有类之母”,也就是基类,若是你的类没有持续任何父类,object将作为默认的父类:
class newClass(object):
define a classics Class
pass
二、Python的实例化
创建一个实例的过程叫实例化,在其他编程说话中一般用关键字 new ,然则在Python中没有这个关键字。而是类似函数调用的体式格式创建实例的:
class newClass(object):
pass
inst = newClass()
print inst #<__main__.newClass object at 0 x00B71650>
三、类最简单的用法
类最简单的用法仅仅用作名称空间,意味着将数据保存到变量中,应用句点属性标识对它们按名称空间分组。
class newClass(object):
pass
bar = newClass() #创建实例
bar.x = 1 #创建实例属性
bar.y = 2
print bar.x+bar.y
重视:bar.x ,bar.y 是实例对象的属性不是类的属性。
四、办法
办法就是类的功能
办法在类中定义,只能被实例调用。
在类中,办法有一个默认参数self,这个参数代表实例本身,当用实例调用办法时,由申明器静静传递给办法。
class newClass(object):
def method(self):
return self
bar = newClass()
print bar.method() #<__main__.newClass object at 0 x00B71910>
在其他说话中,self一般称为this,一般办用到这个实例(self),然则静态办法和类办法不须要。
五、创建类、办法、实例对象接见
class addPerson(object):
def __init__(self,nm,ph): #定义机关器
self.name = nm #设置name
self.phone = ph #设置phone
print Created instance for,self.name
def Phone(self,newph):
self.phone = newph
print Updated phone for,self.phone
josn = addPerson(JSON,1565208444) #创建实例对象josn
ben = addPerson(Ben,15249638892) #创建实例对象ben
print Instance property:[%s][%s] %(ben.name,ben.phone) #接见实例属性
ben.Phone(110)
print ben.phone
六、子类
创建子类:靠持续来进行子类化,在不影响父类(基类)的根蒂根基上改进本身的功能。
如:持续上方的类
class addInfo(addPerson):
def __init__(self,nm,ph,id,em): #定义本身的机关器
addPerson.__init__(self, nm, ph) #持续父类机关器(这个很首要)
self.empid = id
self.email = em
def Email(self,newem):
self.email = newem
print Updated e-mail address for:,self.name
zhangsan = addInfo(ZhangSan,123456789,01,ZhangSan@gmail) #创建addInfo实例,输出Created instance for ZhangSan
print zhangsan #<__main__.addInfo object at 0 x00B71BD0>
print Instance property:[%s],[%s],[%s],[%s] %(zhangsan.name,zhangsan.phone,zhangsan.empid,zhangsan.email)
#输出:Instance property:[ZhangSan],[123456789],[01],[ZhangSan@gmail]
zhangsan.Phone(250) #Updated phone for 250
zhangsan.Email(Zhang@163.com) #Updated e-mail address for: ZhangSan
重视:
若是须要,每个子类好定义本身的机关器,不然的话,基类的机关器将会被调用。然而若是子类重写基类的机关器,那么基类的机关器就不会被主动调用,必须显式写出来才行,如上的:addPerson.__init__
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》




