欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python面向对象类的代码实例

程序员文章站 2022-04-12 21:47:26
面向对象 1.类 #Filename:PyClass.py class Animal: count = 0 #类成员,所有对象共享 __private...

面向对象

1.类

#Filename:PyClass.py
class Animal:
    count = 0	#类成员,所有对象共享
    __privateVal = 2	#双下划线代表私有变量,只能在内部函数中调用
    def __init__(self,name):	#构造函数,self默认加上否则函数中无法调用自己
        self.name = name	#name是创建的对象变量,由该对象独享
        Animal.count +=1	#调用类成员变量必须要有类名

    def __del__(self):	#析构函数,何时执行很不确定,可以在外部手动调用
        print('%s bye'%self.name)
        Animal.count -=1

    def CheckCount(self):
        print('left:',Animal.count)

    def ShowPrivate():
        print('private:',Animal.__privateVal)	#调用类私有变量

	def __PrivateFunc():	#私有函数
        print('I am private')
dog = Animal('dog')
if True:
    cat = Animal('cat')	#域内创建对象,出域并不一定会调用__del__
    cat.__del__()	#可以手动调用析构__del__

dog.CheckCount()
print('animal:',Animal.count)
#print('animal:',Animal.__privateVal)	#这一步会出错,外部无法调用私有成员变量
Animal.ShowPrivate()
#Animal.__PrivateFunc()	#这一步会出错,外部无法调用私有成员函数

2.继承

#Filename:inherit.py
class parent1:
    def __init__(self,name):
        self.name = name

class parent2:
    def __init__(self,age):
        self.age = age

class child(parent1,parent2):	#继承的方式 多重继承
    def __init__(self,name,age):	#初始化父类方式
        parent1.__init__(self,name)
        parent2.__init__(self,age)

    def ShowName(self):
        print('name',self.name)	#继承自父类1的成员变量

    def ShowAge(self):
        print('age',self.age)	#继承自父类2的成员变量

ch = child('dv',3)
ch.ShowName()
ch.ShowAge()