<
>

Python基础学习——面向对象的基本编程

2020-06-28 10:36:33 来源:易采站长站 作者:易采站长站整理

class people:
name=""
age=0
_weight=0 #定义私有属性,私有属性在类外部无法直接进行访问
def __init__(self,a,n,w):
self.name=a
self.age=n
self._weight=w
def f(self):
print("%s 说: 我 %d 岁。" %(self.name,self.age))
#单继承
class student(people):
grade=0
def __init__(self,a,n,w,g):
#调用父类的构函
people.__init__(self,a,n,w)
self.grade=g
def f(self):
print("%s 说: 我 %d 岁。读%d 年纪" %(self.name,self.age,self.grade))
#覆写父类的方法
class speak():
topic=''
def __init__(self,t):
self.topic=t
def f(self):
print("我叫 %s,我是一个演说家,我演讲的主题是 %s"%(self.name,self.topic))

class student_speak(speak,student):
def __init__(self,a,n,w,g,t):
student.__init__(self,a,n,w,g)
speak.__init__(self,t)
s=student_speak('tom',10,5,5,'c++')
s.f()
# 我叫 tom,我是一个演说家,我演讲的主题是 c++

方法重写

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法,实例如下:

class Parent:        # 定义父类
def myMethod(self):
print ('调用父类方法')

class Child(Parent): # 定义子类
def myMethod(self):
print ('调用子类方法')

c = Child() # 子类实例
c.myMethod() # 子类调用重写方法
super(Child,c).myMethod() #用子类对象调用父类已被覆盖的方法
'''
调用子类方法
调用父类方法
'''

super
是用来解决多重继承问题的,当子类方法与父类相同时,亦可继承。

类的私有属性和私有方法

两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。方法类似,声明该方法为私有方法,只能在类的内部调用 ,不能在类的外部调用。

class test:
__age=30
age=30
def f(self):
print(self.__age)
def __f(self):
print(self.__age)
s=test()
print(s.age)
#print(s.__age) 报错!!!
s.f() #通过这个可以间接输出私有属性
#s.__f() 报错!!!

在这里插入图片描述

作者:爱打代码的喵

暂时禁止评论

微信扫一扫

易采站长站微信账号