Python语言教程-类和对象

定义类

class ClassName:
    <statement-1>
    .
    .
    .
    <statement-N>

上诉的方式即可定义一个类,类相当于你定义了一个东西,这个东西有自己的动作(函数/方法)也有自己的属性

Class对象

可以进行属性引用和实例化

属性引用可以直接使用obj.name来进行调用,在调用类的时候加上括号即可进行实例化,实例化后需要对类使用__init__()方法进行初始化,并进行属性调用,如下

class Test:
    def __init__(self,name,age):
        self.name = name
        self.age = age


x= Test("张三",45)
print(x.name)
print(x.age)

结果为:
张三
45

同时也可以使用调用类中的方法:

class Dog:

    def __init__(self, name):
        self.name = name
        self.tricks = []    # creates a new empty list for each dog

    def add_trick(self, trick):
        self.tricks.append(trick)

e = Dog('Buddy')
e.add_trick('play dead')
print(e.name)
print(e.tricks)

结果为:
Buddy
['play dead']

继承 

继承指的是一个类继承另外一个类中的属性或者是方法,同时也支持跨域进行继承,下面是一个简单的例子:

class DerivedClassName(modname.BaseClassName):

同时也支持多个类继承,使用逗号分隔就可以了

class DerivedClassName(Base1, Base2, Base3):
    <statement-1>
    .
    .
    .
    <statement-N>

单继承

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        raise NotImplementedError("Subclass must implement abstract method")

class Dog(Animal):
    def speak(self):
        return f"{self.name} says Woof!"

dog = Dog("Buddy")
print(dog.speak())  # 输出: Buddy says Woof!

多继承

class CanFly:
    def fly(self):
        return "I can fly!"

class CanSwim:
    def swim(self):
        return "I can swim!"

class Duck(CanFly, CanSwim):
    pass

duck = Duck()
print(duck.fly())  # 输出: I can fly!
print(duck.swim())  # 输出: I can swim!

方法重写和调用父类方法,调用父类方法的时候使用super().方法 

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return "Some animal sound"

class Dog(Animal):
    def speak(self):
        # 调用父类的speak方法
        animal_sound = super().speak()
        return f"{self.name} says Woof! {animal_sound}"

dog = Dog("Rex")
print(dog.speak())  # 输出: Rex says Woof! Some animal sound

私有变量 

python中不没有私有变量的定义,不过一般普遍的约定是使用_的方式来标记私有变量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值