Python类和对象

来自CloudWiki
跳转至: 导航搜索

类的定义

在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法。类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义:

class className:
    block

注意类名后面有个冒号,block要向右边缩进,在block块里面就可以定义属性和方法了

定义了一个Person类:

class Person:
    #定义了一个属性
    nation = 'China'
    province = 'Shandong'
    
    #定义了一个方法
    def printNation(self):
        print(self.nation)

在类中我们可以定义一些属性,如:

    nation = 'China'
    province = 'Shandong'


创建实例对象

类定义好后就可以进行实例化操作,通过:

p=Person( )

这样就产生了一个Person的实例对象

实例对象是根据类的模版生成的一个内存实体,有确定的数据与内存地址。

__init__() 函数

上面的例子是最简单形式的类和对象,在实际应用程序中并不真正有用。

要理解类的含义,我们必须先了解内置的 __init__() 函数。

所有类都有一个名为 __init__() 的函数,它始终在启动类时执行。

使用 __init__() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:

class Person:
    #属性
    nation ='China'
    province = 'Shandong'

    #初始化函数
    def __init__(self, nation, province):
        self.nation = nation
        self.province = province    



    #方法
    def printNation(self):
        print(self.nation)

if __name__ == '__main__':
    '''p=Person()
    print(p.nation,p.province)
    p.printNation()
    '''
    p = Person("China","Beijing")
    print(p.nation)
    print(p.province)
    p.printNation()

创建名为 Person 的类,使用 __init__() 函数为 name 和 age 赋值:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

p1 = Person("Bill", 63)

print(p1.name)
print(p1.age)

 

属性值的访问

通过下面的两钟方法来读取访问:

(1) 使用类的名称,例如Person.name,Person.age;

(2) 使用类的实例对象,例如 p=Person()是对象,那么为p.name,p.age;

例如:

class Person:
    #定义了一个属性
    nation = 'China'
    province = 'Shandong'
    
    #定义了一个方法
    def printNation(self):
        print(self.nation)

if __name__ == '__main__':
    
    p=Person()#创建一个对象

    #打印类的属性
    print(Person.nation,Person.province)
    #Person.printNation()
    #打印对象p的属性 ,运行对象p的方法
    print(p.nation,p.province)
    p.printNation()
    #对象的属性和方法 比较常用