python|Python中面向对象的讲解(1)
面向对象编程的2个非常重要的概念:对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。
类和对象
类用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
类是由三部分构成:
类的名称
类的属性
类的方法
格式如下:
# 类名
class Func(object):
# 类的属性
i=123
# 类的方法
def f(self):
print('6666')# 实例化类
a=Func()
# 访问类的属性
print(a.i)
# 调用类的方法
a.f()
object 是Python 里所有类的最顶级父类;魔法方法 1.init
类名 的命名规则按照"大驼峰命名法";
f 是一个实例方法,第一个参数一般是self,表示实例对象本身,当然了可以将self换为其它的名字,其作用是一个变量 这个变量指向了实例对象
Python 的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法,init()就是一个魔法方法,通常用来做属性初始化 或 赋值 操作(作用)。案例:
如果类面没有写__init__方法,Python会自动创建,但是不执行任何操作
如果为了能够在完成自己想要的功能,可以自己定义__init__方法
所以一个类里无论自己是否编写__init__方法 一定有__init__方法
# 类名
class Func(object):
def __init__(self,name,age):
self.name=name
self.age=age
# 类的属性
i=123
# 类的方法
def f(self):
print('我的名字叫%s,今年%d岁了'%(self.name,self.age))# 实例化类
a=Func('大飞',24)
# 访问类的属性
print(a.i)
# 调用类的方法
a.f()
文章图片
init(self)中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么__init__(self)中出了self作为第一个形参外还需要2个形参,例如__init__(self,x,y)注意:
1). 在类内部获取 属性 和 实例方法,通过self获取;
2). 在类外部获取 属性 和 实例方法,通过对象名获取。
3). 如果一个类有多个对象,每个对象的属性是各自保存的,都有各自独立的地址;
4). 但是实例方法是所有对象共享的,只占用一份内存空间。类会通过self来判断是哪个对象调用了实例方法。
2.str
str 如果一个类中定义了__str__方法,在打印对象时,默认输出该方法的返回值,没有定义会返回对象的地址
class Func(object):
def __init__(self,name,age):
self.name=name
self.age=agea=Func('大飞',24)
print(a)
文章图片
调用__str__方法,输出结果是该方法的返回值
class Func(object):
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return '我的名字叫%s,今年%d岁了'%(self.name,self.age)a=Func('大飞',24)
print(a)
文章图片
总结:实例化对象时会调用__str__()方法,如果没有定义__str__()方法会打印一个对象的地址,如果定义__str__()并且有返回值,就会打印其中的返回值
3.del
当删除对象时,python解释器会默认调用一个方法,这个方法为__del__()方法
class Dog(object):
def __init__(self,name):
self.name =name
print("__init__方法被调用")
def __del__(self):
print("__del__方法被调用")
print("python解释器开始回收%s对象了" % self.name)
p = Dog('Bob')
del p
【python|Python中面向对象的讲解(1)】
文章图片
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理