python学习-类

1 类的定义

三要素: 类名、属性、方法

class 类名():
    def __int__(self,参数):#初始化属性
    
    def func1(self):
    def func2(self):
    ...#定义方法

类名主要要有实际意义,驼峰命名之类的

1.1 类的属性

def __init__(self,要传递的参数) #初始化类的属性
#例如:
class party():
    """模拟一支队伍"""
    def __init__(self,num,leader,member):
        """初始化队伍内部属性"""
        self.num=num=num    #成员数目
        self.leader=leader  #设置队长
        self.leader=member  #设置队员

注意self不能漏变量掉,把参数传进来后,再赋值给用self修饰的变量。这样类就相当于内部声明了一个变量。
假设变量名为num。
类内部使用这个变量用self.num
类外部使用这个变量用实例.num
实例就是用该类创建的一个对象。

1.2 类的方法

承接上文

class party():
    """模拟一支队伍"""
    def __init__(self,num,leader,member):
        """初始化队伍内部属性"""
        self.num=num=num    #成员数目
        self.leader=leader  #设置队长
        self.leader=member  #设置队员
    
    def print_party(self):  #哪怕没有参数也要填入self
        print(self.num,self.leader,self.memeber)            #输出成员队伍信息

    def set_leader(self,name):
        self.leader=name    #设置队长,用字符串赋值名字之类的
    
    def set_member(self,names):
        self.member=names   #names可以是列表

这样我们可以通过实例.方法的方式调用类内部的函数,也就是使用方法。

1.3 创建实例

采用类名(参数)的方式。对于上面的party类:

party(3,"安洁莉娜",["铃兰","空弦"])#和一般函数一样的对应关系

不过这样创建的实例很快就被垃圾回收了,所以我们还需要一个变量去指向它

hua_shui=party(3,"安洁莉娜",["铃兰","空弦"])

这样我们就可以通过hua_shui.num调用变量num,用hua_shui.print_party()的方式调用函数。

  • 实例名.变量名
  • 实例名.函数(必要的参数)

1.4 权限

  • 在类中函数外的位置定义的变量可以供该类的所有实例共用
  • 类中定义的变量前面加双下划线表示该变量为类的私有变量,不可以在外部进行修改,只能在调用类的方法进行修改。按照对C++的印象粗略的解释,不够严谨。

2 类的组合与继承

2.1 简单的继承

class 子类型(父类名):

    class hua_shui_party(party):
    """划水队"""
    def __init__(self,num,leader,member)
        """初始化属性"""
        super().__init__(num,leader,memeber)    #声明继承父类的属性
  • 自动继承父类的所有方法,并可以更具自己的需要添加属性或方法。如果继承父类的方法不能满足需求,还可以重写父类的方法,重写要求形参相同。

2.2 类的的组合

所谓类的组合就是把一个类的实例作为另一个类的属性,如

class Leader():
    def __init__(self,a,b,c)
        self.a=a
        self.b=b
        self.c=c
    
    def func1(...):
        ...

class party():
    def __init__(self,a,b,c,d,e)
        self.a=a
        self.b=b
        self.leader=Leader(c,d,e)   #给参数

    def func2(...):
        ...

posted @ 2021-03-29 22:18  七铭的魔法师  阅读(104)  评论(0编辑  收藏  举报