0
点赞
收藏
分享

微信扫一扫

Python-day14

愚鱼看书说故事 2023-09-21 阅读 35

1、对象动态绑定属性和方法

#对象动态绑定属性和方法
class Student:
    def __init__ (self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print(self.name+'在吃饭')
stu1=Student('柠柠',1)
stu2=Student('cecilia',3)
stu1.eat()
stu2.eat()

def lesson():
    print(stu1.name+'在上课')
stu1.lesson=lesson
stu1.lesson()

stu1.native_place='山东'
print(stu1.name,stu1.age,stu1.native_place)

2、类对象的封装

class Student:
    def __init__(self,name,age):
        self.name=name
        self.__age=age
    def show(self):
        print(self.name,self.__age)
stu=Student('柠柠',1)
stu.show()
print(stu.name)
print(dir(stu))
print(stu._Student__age)

3、类对象的继承

class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def pr(self):
        print(self.name,self.age)
class Student(Person):
    def __init__(self,name,age,id):
        super().__init__(name,age)
        self.id=id
class Teacher(Person):
    def __init__(self,name,age,year):
        super().__init__(name,age)
        self.year = year
stu=Student('柠柠',1,123321)
teacher=Teacher('cecilia',30,5)
stu.pr()
teacher.pr()

4、方法重写

class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def pr(self):
        print(self.name,self.age)
class Student(Person):
    def __init__(self,name,age,id):
        super().__init__(name,age)
        self.id=id
    def pr(self):
        super().pr()
        print(self.id)
class Teacher(Person):
    def __init__(self,name,age,year):
        super().__init__(name,age)
        self.year = year
    def pr(self):
        super().pr()
        print(self.year)
stu=Student('柠柠',1,123321)
teacher=Teacher('cecilia',30,5)
stu.pr()
teacher.pr()

5、object类

object类中的str方法本身是返回对象地址,可以重写方法,返回对象的描述

print(对象名)是直接调用str方法

class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def __str__(self):
        return '我叫{0}今年{1}岁'.format(self.name,self.age)
stu=Student('柠柠',1)
print(dir(stu))
print(stu)

举报

相关推荐

0 条评论