python面向对象

课程链接:课程链接点击打开

一、类的简介

1、类是某个具体对象特征的抽象

2、类的作用:根据抽象的类,生产具体的对象

3、类的组成:名称、属性、方法

4、定义类

class Money:
    pass

5、根据类创建一个对象

one = Money()

6、属性和变量的区别

概念:变量是可以改变的量值;属性是属于某个对象的特性

访问权限:变量根据不同位置存在不同访问权限;属性只能通过对象来访问

类和对象在内存都有一块空间

二、对象属性

1、对象添加属性(增)

(1)通过对象直接添加(2)通过类初始化方法(构造方法)

python面向对象_第1张图片

#1.定义一个类
class Person:
    pass

#2、根据类,创建一个对象
p = Person()

#3、给P对象,增加一些属性
p.age = 18
p.height =180
#4验证是否添加成功
print(p.age)
print(p.__dict__)

  

可以通过对象.__dict__访问对象的属性

2、访问对象属性(查)

p.age = 123,新开辟空间存123,p.age指向123的空间

如果p.sex没有被赋值就使用的话会报错

3、修改对象属性(改)

通过赋值修改。注:给数组(可变的)整体赋值会新开辟空间,如果给数组添加元素,不会新开辟空间

4、删除对象属性(删除)

del p.age(如果没有别的变量引用则会被彻底删除)

5、注意事项

不同对象之间不可引用对象属性,类和对象是一对多的关系

三、类对象

参考python面向对象_气死柯西的博客-CSDN博客

类对象增、查、改、删

23-限制对象属性的添加__slot__

class Person:
    __slots__=['age']  #只有slots所限定的属性
    pass
p1 = Person()
p1.age = 18
p1.a =20 #会报错

四、方法

25-方法的概念和作用

  1. 描述一个目标的行为动作

  2. 和函数非常类似,都封装了一系列动作,都可以被调用之后执行一系列行为动作,最主要的区别是调用方式

class Person:
	def eat(self):
        print(1)
        print(2)
        print(3)
p = Person()
p.eat()

27-方法的划分依据

  1. 实例方法:默认第一个参数需要接收到一个实例

  2. 类方法:默认第一个参数需要接收到一个类

  3. 静态方法:一个默认参数也不接受

  4. 注意: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()

你可能感兴趣的:(#,python面向对象编程,python)