课程链接:课程链接点击打开
1、类是某个具体对象特征的抽象
2、类的作用:根据抽象的类,生产具体的对象
3、类的组成:名称、属性、方法
4、定义类
class Money:
pass
5、根据类创建一个对象
one = Money()
6、属性和变量的区别
概念:变量是可以改变的量值;属性是属于某个对象的特性
访问权限:变量根据不同位置存在不同访问权限;属性只能通过对象来访问
类和对象在内存都有一块空间
(1)通过对象直接添加(2)通过类初始化方法(构造方法)
#1.定义一个类
class Person:
pass
#2、根据类,创建一个对象
p = Person()
#3、给P对象,增加一些属性
p.age = 18
p.height =180
#4验证是否添加成功
print(p.age)
print(p.__dict__)
可以通过对象.__dict__访问对象的属性
p.age = 123,新开辟空间存123,p.age指向123的空间
如果p.sex没有被赋值就使用的话会报错
通过赋值修改。注:给数组(可变的)整体赋值会新开辟空间,如果给数组添加元素,不会新开辟空间
del p.age(如果没有别的变量引用则会被彻底删除)
不同对象之间不可引用对象属性,类和对象是一对多的关系
参考python面向对象_气死柯西的博客-CSDN博客
类对象增、查、改、删
class Person:
__slots__=['age'] #只有slots所限定的属性
pass
p1 = Person()
p1.age = 18
p1.a =20 #会报错
描述一个目标的行为动作
和函数非常类似,都封装了一系列动作,都可以被调用之后执行一系列行为动作,最主要的区别是调用方式
class Person:
def eat(self):
print(1)
print(2)
print(3)
p = Person()
p.eat()
实例方法:默认第一个参数需要接收到一个实例
类方法:默认第一个参数需要接收到一个类
静态方法:一个默认参数也不接受
注意:1.划分依据是:方法第一个参数必须要接受的的数据类型。2.不管是哪一种给类型方法,都储存在类当中,没有在示例当中的。3.不同类型方法调用方式不同。
class Person:
def eat2(self):
print('这是一个实例方法',self)
@classmethod
def leifangfa(cls):
print('这是一个类方法',cls)
@staticmethod
def jiangtaifanfa():
print('这是一个静态方法')
p = Person()
print(p)
p.eat2()
Person.leifangfa()
Person.jiangtaifanfa()