Python中关于面向对象概念的详细讲解

作者:测试领头羊 时间:2022-07-31 08:04:40 

面向对象编程的2个非常重要的概念:
类和对象

对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。

类用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类是由三部分构成:

类的名称
类的属性
类的方法

格式如下:


# 类名
class Func(object):
   # 类的属性
   i=123
   # 类的方法
   def f(self):
       print('6666')

# 实例化类
a=Func()
# 访问类的属性
print(a.i)
# 调用类的方法
a.f()

object 是Python 里所有类的最顶级父类;
类名 的命名规则按照"大驼峰命名法";
f 是一个实例方法,第一个参数一般是self,表示实例对象本身,当然了可以将self换为其它的名字,其作用是一个变量 这个变量指向了实例对象

魔法方法

1.init

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()

Python中关于面向对象概念的详细讲解

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=age

a=Func('大飞',24)
print(a)

Python中关于面向对象概念的详细讲解

调用__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)

Python中关于面向对象概念的详细讲解


总结:实例化对象时会调用__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中关于面向对象概念的详细讲解

来源:https://blog.csdn.net/weixin_45043349/article/details/120625849

标签:Python,面向对象,概念
0
投稿

猜你喜欢

  • python实现QQ空间自动点赞功能

    2022-06-27 14:23:54
  • python 统计列表中不同元素的数量方法

    2023-10-16 05:22:33
  • Python 实现子类获取父类的类成员方法

    2022-01-14 00:28:17
  • 如何用SA-FileUp上传一个单纯的HTML文件?

    2010-05-18 18:29:00
  • 2008年Logo设计10大趋势

    2008-02-28 13:06:00
  • python高阶函数functools模块的具体使用

    2022-12-08 09:03:15
  • Mysql 命令行模式访问操作mysql数据库操作

    2024-01-14 07:43:41
  • CSS+asp仿迅雷人气指数

    2009-08-03 14:11:00
  • Golang接口型函数使用小结

    2024-05-08 10:14:53
  • 详解如何利用Python绘制迷宫小游戏

    2021-02-28 05:31:32
  • Python实现base64编码

    2023-10-01 02:34:50
  • 解决Tensorflow安装成功,但在导入时报错的问题

    2022-03-05 18:39:27
  • 基于Python实现简易学生信息管理系统

    2021-04-07 23:19:49
  • python基于xml parse实现解析cdatasection数据

    2023-08-18 13:27:36
  • ACCESS转SQL Server2000需要注意的问题

    2007-11-18 15:25:00
  • Python学习笔记之Django创建第一个数据库模型的方法

    2024-01-14 20:46:39
  • tensorflow实现训练变量checkpoint的保存与读取

    2023-12-15 18:10:33
  • Python编程基础之输入与输出

    2021-03-03 10:06:07
  • Golang实现断点续传功能

    2023-07-24 08:19:26
  • python 使用get_argument获取url query参数

    2023-02-12 03:52:18
  • asp之家 网络编程 m.aspxhome.com