Home » python » Python————类和对象

Python————类和对象

类和对象:

类:主要是将方法(函数)和属性(变量)封装到类里,方便引用和管理。
对象:类的实例,主要负责调用类中封装的属性和方法。

知识点:

  1. self和super关键字的区别;
  2. 类中装饰器的:@property、@classmethod、@staticmethod;
  3. 指针和内存地址之间的关系;
  4. 类中私有变量的设置
  5. 类的继承的作用、特点、使用
  6. 类中方法的重写;
  7. 类的多继承

object是Python中类的根类、最底层的类,所有类最终都继承于object类

classPeople(object):


"""
定义类的描述
"""
#这里定义的是类属性

name='123'
def__init__(self,u_name,u_age):







"""
对象初始化方法,当对象被创建完成,自动调用该方法,用于初始化一些属性
对象创建使用__new__(self)方法,该方法会给对象开辟内存空间
self:表示当前类的对象,相当于this
当创建一个people对象p1,那么程序就会将类中的属性拷贝到对象p1的内存中
当创建一个people对象p2,那么程序就会将类中的属性拷贝到对象p2的内存中
谁使用,self就指向那个对象
"""
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

给对象初始化属性,__ init__()中的属性称为对象属性或者实例属性,这些属性用来保存数据

而这些被保存的数据放在对象的内存空间

self.u_name=u_name
self.u_age=u_age

def add_student(self):
print(‘self = ‘, self)

self不需要我们给他传递参数,self是由python解释器传递的,自定义参数写self后边

print(self.u_age,self.u_name)



@classmethod
defupdate_student(cls,number):# 类可以直接调用,不需要定义类对象,通过对象调用
print('-------',cls,number)



People.update_student(10)

p1=People('李四',20)
print('p1= ',p1.u_age)

p1.add_student()

p1.update_student(100)



p2=People('ll',21)
print('p2 = ',p2.u_age)

p2.add_student()

p2.update_student(10)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

类属性:所有对象公有的属性,如果类修改了类属性,这个类定义的对象会受影响。类属性既可以使用类名调用,也可以使用对象调用,对象只能使用类属性,但是不能修改,只有通过类调用类属性,才能修改类属性的值通过对象调用类属性并对这个属性赋值,此时的属性不再是原来的类属性,而是一个新的动态对象属性
对象属性:每个对象私有的属性,放在自己的内存空间,修改实例属性的值,只对自己产生影响
对象属性只能由实例对象调用,不能使用类名去调用
print(People.name,p1.name,p2.name)

静态方法: 加@staticmethod 声明静态,去掉则编译报错;还有静态方法不能访问类变量和实例变量
类方法:加@classmethod声明,类属性既可以使用类名调用,也可以使用对象调用
对象方法:只能通过对象调用
工具类:因为加了@classmethod注释,因此可以不用声明对象。不需要声明属性/数据操作类()

classDBTool(object):


"""
    处理数据库工具
    """

    @classmethod# 装饰器
definsert(cls):# cls当前类,不能使用self(对象)
pass

    @classmethod
defupdate(cls):
pass
classStrTool(object):

    @classmethod
defremoveSpace(cls):
pass

    @classmethod
defreplaceSpace(cls):
pass



DBTool.insert()

DBTool.update()