2021.3.25学习总结

一、类与对象

1、什么是类

类就是拥有相同属性和相同功能的对象的集合

2、什么是对象

对象是类的实例

3、定义类

语法:
class 类名:
类的说明文档
类的内容

说明:
类名 - 第一个字母大写,单词采用驼峰式命名(单词之间首字母大写)
类的内容 - 描述当前这个类是拥有哪些共同属性(变量)和哪些共同功能(函数)的对象的集合
包括属性和方法两个部分:
属性:对象属性和类属性两种
方法:对象方法、类方法、静态方法三种
方法:定义在类中的函数就叫方法

4、定义对象

语法:
对象 = 类名()

二、构造方法和初始方法

1、构造方法

方法名和类名一样并且是用来创建对象的方法就叫构造方法
python中在定义类的时候,系统会自动帮我创建好这个类的构造方法

2、初始方法 __init__

1)当调用构造方法创建对象的时候,系统会自动调用这个类的__init__
2)创建对象的时候构造方法需不需要参数需要几个,参照类中的__init__方法除了self以外有几个参数

三、方法

1、对象方法

怎么定义:直接定义在类中的函数
怎么调用:通过对象来调用
特点:自带参数self,调用的时候self不需要传参,系统会自动将当前对象传self(谁调用指向谁)
什么时候用:如果实现函数的功能需要对象属性就定义成对象方法

2、类方法

怎么定义:在类中定义函数前加装饰器:@classmethod
怎么调用:通过类来调用
特点:自带参数cls,调用的时候cls不需要传参,系统会自动将当前类传刚给cls
什么时候用:实现函数功能的时候在不需要对象属性的前提下需要类属性,就定义成类方法

3、静态方法

怎么定义:在类中定义函数前加装饰器:@staticmethod
怎么调用:通过类来调用
特点:没有默认参数
什么时候用:实现函数的功能既不需要对象也不需要类

四、属性

属性分为类属性和对象属性

1、类属性(字段)

怎么定义:直接定义在类中的变量就是类属性
怎么使用:通过’类.'的形式来使用
什么时候用:属性值不会因为对象不同而不一样的属性就需要定义成类属性,例如:圆类中的圆周率

2、对象属性

怎么定义:以’self.属性名=值‘的形式定义在__init__方法。
怎么使用:通过’对象.'的形式来使用
什么时候用:会因为对象不同而不一样的属性就需要定义成对象属性,例如:人类的年龄,姓名

  1. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangle():
    def __init__(self,length,breadth):
        self.length = length
        self.breadth = breadth
    def area(self):
        return self.length * self.breadth
  1. 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离

    class Spot():
        def __init__(self,x,y):
            self.x = x
            self.y = y
        def distance(self,spot_:object):
            l = ((self.x -spot_.x)**2 +(self.y -spot_.y)**2)**0.5
            return l
    
  2. 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切

    class Circle():
        pi = 3.1415926
        def __init__(self,r,cirspot:tuple):
            self.r =r
            self.cirspot = cirspot
        def perimeter(self):
            return self.r*2*Circle.pi
        def area(self):
            return self.r**2*Circle.pi
        def exterior(self,circle:object):
           l = ((self.cirspot[0] - circle.cirspot[0])**2+ (self.cirspot[1] - circle.cirspot[1])**2) **0.5
           if l == self.r +circle.r:
               print(True)
           else:
               print(False)
    
  3. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Line():
        def __init__(self,star:tuple,end:tuple):
            self.star = star
            self.end =end
        def l(self):
            return ((self.star[0]-self.end[0])**2+(self.star[1]-self.end[1])**2)**0.5
    
  4. 定义一个狗类和一个人类:

    狗拥有属性:姓名、性别和品种 拥有方法:叫唤

    人类拥有属性:姓名、年龄、狗 拥有方法:遛狗

    class Person():
        def __init__(self,name,age,dog):
            self.naem = name
            self.age =age
            self.dog =dog
        def walk_dog(self):
            self.dog.wang()
    
    class Dog():
        def __init__(self,name,gerden,breed):
            self.name = name
            self.gerden =gerden
            self.breed = breed
        def wang(self):
            print('汪汪汪!')
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值