class Student(): #定义了一个学生类
name='' #学生类有姓名属性
sex=''
address=''
score=''
def say(self):
print('我叫:',self.name)
print('性别:',self.sex)
print('地址:',self.address)
print('成绩:',self.score)
zs=Student() #定义一个学生类
zs.name='张三' #为学生张三的属性赋值
zs.sex='男'
zs.address='北京'
zs.score=100
ls=Student()
ls.name='李四'
ls.sex='男'
ls.address='河北'
ls.score=90
zs.say()
ls.say()
class Official():
name=''
sex=''
age=''
hight=''
def say(self):
print('我叫:',self.name)
print('性别:',self.sex)
print('年龄:',self.age)
print('身高:',self.hight)
ww=Official()
ww.name='王五'
ww.sex='男'
ww.age=20
ww.hight=50
yy=Official()
yy.name='依依'
yy.sex='男'
yy.age=30
yy.hight=40
ww.say()
yy.say()
class Student():
def __init__(self,name,age,sex,money): #初始化方法,传入五个参数,其中self代表对象本身
self.name=name #相当于给对象增加了一个name属性
self.age=age
self.sex=sex
self.money=money
def say(self):
print(self.name,self.age,self.sex)
zs=Student('张三',18,'男',100)
zs.say()
print(zs.money)
ls=Student('李四',30,'女',200)
ls.say()
print(ls.money)
面向对象的特性:封装 继承 多态
class Student():
def __init__(self,name):
self.name=name
def hehe(self):
self.salary=1000
def say(self):
print(self.name,self.salary)
zs=Student('张三')
zs.hehe()
#zs.salary=1000
zs.say()
class People():
count=0 #类属性
def __init__(self,name):
self.name=name #加 self 叫 对象属性
People.count+=1
zs=People('张三')
ls=People('李四')
print(zs.count)
print(People.count)
ww=People('王五')
print(People.count)
class People():
count=0 #类属性
def __init__(self,name):
self.name=name #加 self 叫 对象属性
People.count+=1
zs=People('张三')
print(zs.count)
zs.count=100
print(People.count)
ls=People('李四')
print(zs.count)
print(People.count)
ww=People('王五')
print(ls.count)
print(People.count)
class People():
count=0 #类属性
def __init__(self,name):
self.name=name #加 self 叫 对象属性
People.count+=1
zs=People('张三')
print(zs.count)
zs.count=100
print(People.count)
ls=People('李四')
print(zs.count)
print(People.count)
ww=People('王五')
print(ls.count)
print(People.count)
delattr(zs,'count')
print(zs.count)
class Stu():
count=0
def __init__(self,name):
self.name=name
Stu.count+=1
zs=Stu('张三')
Stu.count+=200
ls=Stu('李四')
zs.count=1001
print(Stu.count)
print(zs.count)
print(ls.count)
类的多态性
class Dog():
def jiao(self):
print('旺旺')
class Pig():
def jiao(self):
print('哼哼')
class Cat():
def jiao(self):
print('喵喵')
def animalJiao(a):
a.jiao()
d=Dog()
p=Pig()
c=Cat()
animalJiao(d)
animalJiao(p)
animalJiao(c)
类的封装性
class Girl():
def __init__(self,name,age):
self.name=name
self.__age=age
def say(self):
print('我叫',self.name)
print('今年%d岁'%self.__age)
zs=Girl('张三',19)
print(zs.name)
zs.say()
print(zs.__age)
=============
class Girl():
def __init__(self,name,age):
self.name=name
self.__age=age
zs=Girl('张三',19)
print(zs.name)
print(zs.__age)
# 这是错误的
=====================
class Girl():
def __init__(self,name,age):
self.name=name
self.__age=age
def say(self):
print('我叫',self.name)
print('今年%d岁'%self.__age)
def getAge(self):
return self.__age
def Older(self,old):
self.__age+=old
zs=Girl('张三',19)
print(zs.getAge())
zs.Older(5)
print(zs.getAge())
==========================================
==============================================================
类的继承性
class People(): # 父类
def __init__(self,name,sex): # 初始化方法
self.name=name
self.sex=sex
class Student(People): # 继承父类
def __init__(self,name,sex,score):
super().__init__(name,sex) # 调用父类的初始化方法
self.score=score
def say(self):
print('我叫',self.name)
print(self.sex)
print(self.score)
zs=Student('张三','男',89)
zs.say()
=============================================================
##############################################################3
class People(): # 父类
def __init__(self,name,sex): # 初始化方法
self.name=name
self.sex=sex
self.__age=100 ##################################错误的写法
class Student(People): # 继承父类
def __init__(self,name,sex,score):
super().__init__(name,sex) # 调用父类的初始化方法
self.score=score
def say(self):
print('我叫',self.name)
print(self.sex)
print(self.score)
zs=Student('张三','男',89)
zs.say()
print(zs.__age) #########################################错误的写法
#########################################################
class People(): # 父类
def __init__(self,name,sex): # 初始化方法
self.name=name
self.sex=sex
def kaiwanxiao(self):
print('呵呵我在开玩笑')
class Student(People): # 继承父类
def __init__(self,name,sex,score):
super().__init__(name,sex) # 调用父类的初始化方法
self.score=score
def say(self):
print('我叫',self.name)
print(self.sex)
print(self.score)
def kaiwanxiao(self):
super().kaiwanxiao() # 重名的话如果想调用父类的就用super
print('我在开玩笑 哈哈') #这是调用Student 里面的
zs=Student('张三','男',89)
zs.say()
zs.kaiwanxiao()
class Stu():
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex
def showSelf(self):
print('我叫',self.name)
print('%d岁'%self.age)
print('性别',self.sex)
zs=Stu('张三',20,'男')
zs.showSelf()
class Stu():
def __init__(self,name,age,sex,score):
self.name=name
self.age=age
self.sex=sex
self.score=score
def showSelf(self): ## self对象本身
print('我叫',self.name)
print('%d岁'%self.age)
print('性别',self.sex)
print('成绩',self.score)
zs=Stu('张三',20,'男',80)
zs.showSelf()
ls=Stu('李四',30,'女',90)
ls.showSelf()
class Stu():
def __init__(self,name,age,sex,score): # self对象本身(Stu)
self.name=name
self.age=age
self.sex=sex
self.score=score
def showSelf(self): ## self对象本身(zs)
print('我叫',self.name)
print('%d岁'%self.age)
print('性别',self.sex)
print('成绩',self.score)
zs=Stu('张三',20,'男',80)
zs.showSelf()
zs.hight=1.8
print(zs.hight) #增加张三的属性
ls=Stu('李四',30,'女',90)
ls.showSelf() #李四没有增加。所以直接打印会报错
class Stu():
count=10
def __init__(self,name,age,sex,score):
self.name=name
self.age=age
self.sex=sex
self.score=score
Stu.count+=1
def showSelf(self):
print('我叫',self.name)
print('%d岁'%self.age)
print('性别',self.sex)
print('成绩',self.score)
zs=Stu('张三',20,'男',80)
ls=Stu('李四',30,'女',90)
zs.showSelf()
ls.showSelf()
print(zs.count)
print(ls.count)
print(Stu.count)
菜鸟"Python"之***面向对象***————题海战术(9)
最新推荐文章于 2022-10-08 16:51:59 发布