目录
简单理解:类属性是整个类共有的属性,对象属性是每个对象实例的属性,类属性的值每个对象都一样,而对象属性的值每个对象各不相同。
面向对象基本概念
在编程领域,面向对象编程(OOP)是一种广泛使用的编程范式,它通过创建对象来模拟现实世界中的实体及其交互。Python作为一种高级编程语言,内置了对面向对象编程的全面支持,使得开发者能够轻松构建复杂且易于维护的应用程序。本文将详细探讨Python中的面向对象编程,包括类、对象、封装、继承和多态等核心概念。
一、类和对象
类(Class)
类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用.
类是创建对象的蓝图或模板,它定义了对象所具有的属性和方法。属性是对象的特征(如颜色、大小),而方法是对象能够执行的操作(如走、跑、叫)。
在程序开发中,要设计一个类,通常需要满足一下三个要素:
- 1.类名:这类事物的名字,按照大驼峰命名法(每个单词的首字母大写)起名。
- 2.属性:这类事物具有什么样的特征。
- 3.方法:这类事物具有什么样的行为。
class Dog:
def __init__(self, name, age):
self.name = name # 实例变量
self.age = age
def bark(self):
print(f"{self.name} is barking.")
在这个例子中,Dog
是一个类,它有两个实例变量name
和age
,以及一个方法bark
。__init__
方法是一个特殊的方法,被称为类的构造函数或初始化方法,当创建类的新实例时自动调用。
self详解:
哪个对象调用了方法,方法里的self 指的就是谁。通过self.属性名可以访问到这个对象的属性;通过self.方法名()可以调用这个对象的方法。
代码举例:
class Student(object):#这里的object表示Student继承自object类
def __init__(self,x,y):
self.name=x
self.age=y
def say_hello(self):
print('大家好,我是',self.name)
#Student('张三',18)这段代码具体做了什么呢?
#1.调用__new__方法,用来申请内存空间
#2.调用__init__方法传入参数,将self指向创建好的内存空间,填充数据
#3.变量s1也指向创建好的内存空间
s1=Student('张三',18)
s1.say_hello()
s2=Student('李四',18)
s2.say_hello()
结果:
大家好,我是 张三
大家好,我是 李四
对象(Object)
对象是类的实例。通过类可以创建多个具有相同属性和方法的对象,但每个对象的属性值可能不同。
d1 = Dog("Buddy", 3)
d2 = Dog("Max", 5)
d1.bark() # 输出: Buddy is barking.
d2.bark() # 输出: Max is barking.
魔法方法:
# 特点:
#1.不需要手动调用,会在合适的时机自动调用#2、这些方法,都是使用开始,使用结束#3.方法名都是系统规定好的,在合适的时机自己调用
__init__和__del__方法:
__init__创建对象时会自动调用
__del__当对象被销毁时,会自动调用这个方法
class Person(object):
def __init__(self,name,age):
#在创建对象时,会自动调用这个方法
print('__init__方法被调用了')
self.name=name
self.age=age
def __del__(self):
#当对象被销毁时会自动调用这个方法
print('__del__方法被调用了')
p=Person('张三',18)
del p
结果:
__init__方法被调用了
__del__方法被调用了
repr__和__str
当打印一个对象时,会调用这个对象的__repr__或__str__方法&#x