1.什么是类、什么是对象
"""
- 官方定义
类就是拥有相同功能和拥有相同属性的对象的集合 - 抽象
对象就是类的实例 - 具体 - 生活角度看类和对象
"""
2.类的声明
"""
1)语法
class 类名:
类的内容(属性和功能)
2)说明
class - 声明类的关键字
类名 - 要求为标识符
见名知义,首字母大写,驼峰式命名
类的内容 - 主要包含说明文档,属性(普通的变量),功能(函数/方法)
"""
3.对象怎么声明
"""
对象 = 类() - 创建指定的类对应的对象
"""
4.类中的方法
"""
- 什么是方法:声明在类中的函数叫方法
- 类中的方法有三种:对象方法,类方法,静态方法
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.属性
类中的属性分为:对象属性和字段
"""
- 字段 - 声明在类中的字段
通过 类.字段 的方式来使用
不会因为对象的不同而不一样的属性,这种属性可以声明称类的字段最近更新 - 对象属性: 声明在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(对象,属性名) - 删除指定对象对应的属性
"""