Day13.今日总结

1.什么是类、什么是对象

"""

  1. 官方定义
    类就是拥有相同功能和拥有相同属性的对象的集合 - 抽象
    对象就是类的实例 - 具体
  2. 生活角度看类和对象
    """

2.类的声明

"""
1)语法
class 类名:
类的内容(属性和功能)

2)说明
class - 声明类的关键字
类名 - 要求为标识符
见名知义,首字母大写,驼峰式命名
类的内容 - 主要包含说明文档,属性(普通的变量),功能(函数/方法)

"""

3.对象怎么声明

"""
对象 = 类() - 创建指定的类对应的对象
"""

4.类中的方法

"""

  1. 什么是方法:声明在类中的函数叫方法
  2. 类中的方法有三种:对象方法,类方法,静态方法
    a.对象方法:直接声明在类中的函数
    有默认参数self,通过对象调用的时候这个参数不用传参,因为系统会
    (self,当前对象 -- 谁调用self就指向谁,当前对象能做的
    通过类的对象来调用 对象.对象方法()
    b.类方法:在声明函数前加上@classmethod
    有默认参数cls,通过类调用的时候这个参数不用传参,因为系统会自动将当
    (self,当前类 -- 谁调用cls就指向谁,当前类能做的事情cls
    通过类来调用:类.类方法()
    c.静态方法:在声明函数前@staticmethod
    没有默认参数
    通过类来调用:类.静态方法()
    """
class Person:
    """人类"""
    @staticmethod
    def eat(food):
        print("人吃%s" % food)

常识:

1.什么是init方法

init是类默认继承的一个魔法方法,用来初始化类:本质是对象方法,但是不需要程序员自己调用,会被自动调用
通过类创建对象的时候(通过构造方法创建对象),系统会自动调用类中的init方法,并且构造方法中的实参全部传给init方法
创建对象的时候需不需要参数,需要几个参数,看这个类的init方法

声明累的时候,系统会自动给我们创建一个函数,这个函数名和声明的类的类名意义
函数会先在内存中开辟空间创建对象,然后用创建的对象去调用类的init方法,最后才将对象返回

class Person:
    def __init__(self):
        pass

1.属性

类中的属性分为:对象属性和字段
"""

  1. 字段 - 声明在类中的字段
    通过 类.字段 的方式来使用
    不会因为对象的不同而不一样的属性,这种属性可以声明称类的字段最近更新
  2. 对象属性: 声明在init方法中,以self.属性 = 值 的形式声明
    对象属性通过'对象.属性'的方式来使用
    """
    声明类的时候方法的选择
    """
    1.对象方法:当实现函数的功能需要用到对象属性时,使用对象方法
    2.类方法:实现函数的功能不需要对象属性,并且需要类相关操作就使用类方法
    3.静态方法:实现函数的功能不需要对象属性也不需要类相关操作,就使用静态方法

"""

class Dog:
    """ 狗 """
    # ===========字段=============
    numbers = 10

    @staticmethod
    def im():
        print('222')

    # ===========对象属性===========
    def __init__(self):
        self.color = '白色'
        self.gender = '公狗'
        self.age = 4

练习:声明一个学生类,拥有属性:名字\电话\年龄\学号 拥有功能:学习(打印XX在学XXX)\

class Students:
    def __init__(self, name, telephone='', age=0):
        self.name = name
        self.telephone = telephone
        self.age = age
        self.student_number = '0000'

    def learn(self, subject):
        print('%s在学%s' % (self, subject))


# 写一个矩形类,有属性: 长和宽 方法:求面积,求周长
class Rectangle:
    def __init__(self, length=0, width=0):
        self.length = length
        self.width = width

    def area(self):
        return self.length * self.width

    def perimeter(self):
        return 2 * (self.width + self.length)

python中的对象属性支持增,删,改,查

1.查

"""
a.对象.属性 - 获取指定属性对应的值,如果属性不存在会报错
b.getattr(对象,属性名,默认值) - 获取指定属性对应的值,
属性不存在返回默认值,无默认值时报错
"""

2.增\改

"""
a.对象.属性 = 值 - 当属性不存在就添加属性,当属性存在修改属性的值
b.setattr(对象,属性名,值) - 当属性不存在就添加属性,当属性存在修改属性的值
"""

3.删

"""
del 对象.属性
delattr(对象,属性名) - 删除指定对象对应的属性
"""

你可能感兴趣的:(Day13.今日总结)