Python基础知识复习

类class

class Dog():
    def __init__(self,name,age):
        """初始化属性name和age"""
        self.name = name
        self.age = age

    def sit(self):
        """模拟小狗被命令时蹲下"""
        print(self.name.title()+"is now sitting.")

    def roll_over(self):
        """模拟小狗被命令时打滚"""
        print(self.name.title() + "roll over!")
d1 = Dog("huahua",3)
d1.sit()
d1.roll_over()

def init(self,name,age):
“”“初始化属性name和age”""
self.name = name
self.age = age

这里类似C++里面的初始化(析构函数)
class Dog()
{
public:
//析构函数
Dog(char name,int age)
{
m_Name = name;
m_Age = age;
}
private:
char m_Name;
int m_Age;
};
定义对象后,析构函数就开始初始化

def init(self,name,age):
定义的时候包含三个形参:self,name,age。在这个方法的定义中,形参self比不可少,还必须位于其他形参的前面。
为何必须在方法定义中包含形参self呢?因为python调用这个__init__()方法创建Dog实例时,将自动传入实参self。每个与类相关联的方法,调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够通过实参向Dog()传递名字和年龄。self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最后两个形参(name和age)提供值。
Dog类海定义了另外两个方法:sit()和roll_over(),由于这些方法不需要额外的信息,如名字或年龄,因此它们只有一个形参self。

d1 = Dog(“huahua”,3)
遇到这行代码时,Python使用实参huahua和调用Dog类中的__init__(),方法__init__()创建一个表示特定小狗的实例,并使用我们提供的值来设置属性name和age。方法__init__()并未显式地包含return语句,但python自动返回一个表示这条小狗的实例。

class Dog():
    def __init__(self,name,age):
        """初始化属性name和age"""
        self.name = name
        self.age = age

    def sit(self):
        """模拟小狗被命令时蹲下"""
        print(self.name.title()+"is now sitting.")

    def roll_over(self):
        """模拟小狗被命令时打滚"""
        print(self.name.title() + "roll over!")
class Dog1(Dog):
    """特种狗的独特之处"""
    def __init__(self,name,age):
        """初始化父类的属性"""
        super().__init__(name,age)#这一行让Python的Dog1调用Dog中的所有属性



d1 = Dog("huahua",3)
d1.sit()
d1.roll_over()

super继承video


定义几个类如下所示:

class Little_Animal():
    def __init__(self,sleep):
        self.sleep = sleep

class Animal():
    def __init__(self,eat,drink):
        self.eat = eat
        self.drink = drink
        self.xixi = 635536

class Cat():
    def __init__(self,bark):
        self.bark = bark

c1 = Cat("nihao")
print(c1.bark)

c2 = Animal("food","caffe")
print(c2.eat,c2.drink,c2.xixi)

这里开始讲super的使用
分别多次使用super

class Little_Animal():
    def __init__(self,sleep):
        self.sleep = sleep

class Animal(Little_Animal):
    def __init__(self,eat,drink,sleep):
        self.eat = eat
        self.drink = drink
        self.xixi = 635536
        super().__init__(sleep)

class Cat(Animal):
    """这里是这样的,可以__init__自己本身的,但是继承的话,需要把继承的都放在自己定义的__init__里面,然后使用super进行重写,把需要从外部
    写入的放在这里,super只能使用一次,如果出现多个继承,那么需要通过传递调用来实现
    """
    def __init__(self,bark,eat,drink,sleep):
        self.bark = bark
        super().__init__(eat,drink,sleep)


c0 = Cat(1,2,3,"sleep")
print(c0.bark,c0.eat,c0.drink,c0.sleep)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值