Python面向对象和图形用户界面(一)---- 面向对象

1. 面向对象:

  1.1 抽象:[ 类  ===具体化===> 对象1,对象2,对象3 ]        [ 类  <====抽象==== 对象1,对象2,对象3 ]

    1.1.1 对象和类

      - 对象(实例):由数据及能对其实施的操作构成的封装体

      - 类:描述了对象的特征(数据和操作)

    1.1.2 类的定义:(object为万类之源)

        

    1.1.3 类的方法:

      

    1.1.4 实例(Instances):

         

      实例的创建:通过调用类对象

      1) 定义类 -- Dog

      2) 创建一个实例 -- dog

      3) 通过实例使用属性或方法 -- dog.greet

    1.1.5 实例属性(Instances Attributes):   

class Dog(object):
    
    'define dog class'
    
    def setName(self, name):
        self.name = name
        
    def greet(self):
        print "Hi, I am %s." % self.name
        

if __name__ == '__main__':
    dog = Dog()
    dog.setName("Paul")
    dog.greet()
View Code

    1.1.6 对象的初始化方法 __init__()

      1) 当类被调用后,Python将创建实例对象;

      2) 创建对象以后,Python自动调用的第一个方法为__init__();

      3) 实例对象作为方法的第一个参数(self)被传递进去,调用类创建实例对象时的参数都传给__init__().

class Dog(object):
    
    'define dog class'
    
    def __init__(self, name):
        self.name = name
        
    def greet(self):
        print "Hi, I am %s." % self.name
        

if __name__ == '__main__':
    dog = Dog("Sara")
    dog.greet()
View Code

    1.1.7 类属性(Class Attributes):

      - 类的数据属性(静态成员),仅仅是所定义的类的变量

      - 在类创建后被使用

      - 可以由类中的方法来更新,也可以在主程序中更新

      - 类属性和实例无关,修改类属性需要使用类名

class Dog(object):
    
    'define dog class'
    
    counter = 0
    
    def __init__(self, name):
        self.name = name
        Dog.counter += 1
        
    def greet(self):
        print "Hi, I am %s, my numnber is %d" % (self.name, Dog.counter)
        

if __name__ == '__main__':
    dog1 = Dog("Sara")
    dog1.greet()
    dog2 = Dog("Alex")
    dog2.greet() 
View Code

  1.2 继承(Inheritance):

    1.2.1 父类(基类) 和 子类(派生类)

    1.2.2 子类的定义(单继承,多继承)

      

    1.2.3 子类定义举例和重载:

class Dog(object):
    
    'define Dog class'
    
    counter = 0
    
    def __init__(self, name):
        self.name = name
        Dog.counter += 1
        
    def greet(self):
        print "Hi, I am %s, my number is %d"%(self.name, Dog.counter)
    
        
class BarkingDog(Dog):
    
    'define subclass BarkingDog'
    
    def greet(self):
        'initial subclass'
        print "Woof! I am %s, my number is %d"%(self.name, Dog.counter)
        
        
if __name__ == '__main__':
    dog1 = BarkingDog("Zoe")
    dog1.greet()
    dog2 = BarkingDog("Bob")
    dog2.greet()
View Code

    1.2.4 私有属性和方法:

      1) 默认情况下,Python类的成员属性与方法都是“public”

      2) 提供“访问控制符”来限定成员函数的访问

        - 双下划线 __:__var属性会被__classname_var替换,防止父类与子类中的同名冲突

        - 单下划线_   :在属性名前使用一个单下划线字符,防止模块的属性用"from mymodule import * "来加载

 

posted on 2017-01-25 13:43  你的踏板车要滑向哪里  阅读(325)  评论(0编辑  收藏  举报

导航