python基础(七)类

1.认识类

使用类可以模拟任何事物。以下面的people类为例,python中以首字母大写为类名,创建的函数叫方法。_init_方法是特殊的方法,每次创建新实例时都调用它。其中形参self是必有的且必在最前面,每次调用方法创建实例时都将自动传入实参self,每个与类关联的方法被调用时也要自动传入实参self。它是指向实例本身的引用,让实例能够访问类的属性和方法。

class People():
    def __init__(self,name,age):
        """初始化属性name,age"""
        self.name = name
        self.age = age
    def eat(self):
        print(self.name.title() + " is eating")
    def drink(self):
        print(self.name.title() + " is drinking")

my_people = People('z',16)                 #创建实例
print("I am "+my_people.name.title())      #访问属性
print("I am "+str(my_people.age)+" years old")
my_people.eat()                            #调用方法
my_people.drink()

属性的值可以预设也可以修改,方法有通过实例修改,使用方法修改或者通过方法递增特定的值。

my_people.act = 20                #通过实例修改属性值,该语句加在调用方法前即可

通过增加updateachievement方法修改属性的值

class People():
    def __init__(self,name,age):
        """初始化属性name,age,act"""
        self.name = name
        self.age = age
        self.ach = 0
    def eat(self):
        print(self.name.title() + " is eating")
    def drink(self):
        print(self.name.title() + " is drinking")
    def achievement(self):
        print("my achievement are "+str(self.ach))
    def updateachievement(self,a):
        self.ach = a

my_people = People('z',16)                 #创建实例
my_people.ach = 20                         #通过实例修改属性值
print("I am "+my_people.name.title())      #访问属性
print("I am "+str(my_people.age)+" years old")
my_people.eat()                            #调用方法
my_people.drink()
my_people.updateachievement(23)
my_people.achievement()

设置方法incrementachievement实现属性值的递增

class People():
    def __init__(self,name,age):
        """初始化属性name,age,act"""
        self.name = name
        self.age = age
        self.ach = 0
    def eat(self):
        print(self.name.title() + " is eating")
    def drink(self):
        print(self.name.title() + " is drinking")
    def achievement(self):
        print("my achievement are "+str(self.ach))
    def updateachievement(self,a):
        self.ach = a
    def incrementachievement(self,b):
        self.ach +=b

my_people = People('z',16)                 #创建实例
my_people.ach = 20                         #通过实例修改属性值
print("I am "+my_people.name.title())      #访问属性
print("I am "+str(my_people.age)+" years old")
my_people.eat()                            #调用方法
my_people.drink()
my_people.updateachievement(23)
my_people.incrementachievement(100)
my_people.achievement()

2.继承

对于特殊的类可以通过继承原有类的所有方法和属性进行编写而不必从新开始,原有类叫父类,新的类叫子类。而且子类可以有自己独特的类。对父类中不符合子类的方法,在子类中重写一个同名的方法即可让python忽略父类的方法转而执行子类的。

class People():
    def __init__(self,name,age):
        """初始化属性name,age,act"""
        self.name = name
        self.age = age
        self.ach = 0
    def eat(self):
        print(self.name.title() + " is eating")
    def drink(self):
        print(self.name.title() + " is drinking")
    def achievement(self):
        print("my achievement are "+str(self.ach))
    def updateachievement(self,a):
        self.ach = a
    def incrementachievement(self,b):
        self.ach +=b

class student(People):             #创建子类
    def __init__(self,name,age):
        super().__init__(name,age) #初始化父类的属性,super函数将父子关联起来
        self.hight = 175           #初始化特有属性
    def hig(self):
        print(self.hight)
my_people = People('z',16)                 #创建实例
my_people.ach = 20                         #通过实例修改属性值
print("I am "+my_people.name.title())      #访问属性
print("I am "+str(my_people.age)+" years old")
my_people.eat()                            #调用方法
my_people.drink()
my_people.updateachievement(23)
my_people.incrementachievement(100)
my_people.achievement()

my_student=student('C',18)
print(my_student.name)
print(my_student.age)
my_student.hig()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<千繁/>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值