文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 面向对象介绍

2023-01-30 22:09

关注
一、类的实例化:调用类产生对象的过程称为类的实例化,实例化的结果是一个对象,或称为一个实例
1 class People:
2     def __init__(self,name,age,sex):
3         self.name=name
4         self.age=age
5         self.sex=sex
6 
7     def run(self):
8         print('%s is running' %self.name)

实例化做了三件事
1、先产生一个空对象
2、自动触发类内部__init__函数的执行
3、将空对象,以及调用类括号内传入的参数,一同传给__init__,为对象定制独有的属性
 obj=People('egon',18,'male') #People.__init__(obj,'egon',18,'male')
 会产生对象的名称空间,如何查看
 print(obj.__dict__)

二;对象的操作
1  print(obj.name) #obj.__dict__
2  obj.education='哈佛'
3  del obj.name
4  obj.age=19
5  print(obj.__dict__)

三:对象属性的查找顺序:先找对象自己的名称空间---->类的名称空间
 1 class People:
 2     x=1
 3     def __init__(self,name,age,sex):
 4         self.name=name
 5         self.age=age
 6         self.sex=sex
 7 
 8     def run(self): self=obj
 9         print('%s is running' %self.name) obj.name
10 
11 obj=People('egon',18,'male')     #People.__init__(obj,'egon',18,'male')
12 obj1=People('egon1',18,'male')   #People.__init__(obj,'egon',18,'male')
13 obj2=People('egon2',18,'male')   #People.__init__(obj,'egon',18,'male')

 


1、类的数据属性:是给对象用的,而且直接共享给所有对象用的,内存地址都一样
1  print(People.x)
2  People.x=11111
3 
4  print(id(People.x),People.x)
5  obj.x='obj================》'
6  print(id(obj.x),obj.x)
7  print(id(obj1.x),obj1.x)
8  print(id(obj2.x),obj2.x)


2、类的函数属性:也是给对象用,但是绑定给对象用的,绑定到不同的对象就是不同的
绑定方法,内存地址都不一样,但其实只想都是同一个功能
1  print(People.run) 
>>> <function People.run at 0x00000226E7C78A60> 2 People.run(123123) 3 People.run(obj) 4 5 print(obj.run) 6 print(obj1.run) 7 print(obj2.run)

 



四:绑定方法的特殊之处:
1、 绑定给谁就应该由谁来调用,
2、谁来调用就会把谁当做第一个参数传入
 1 class People:
 2     x=1
 3     def __init__(self,name,age,sex):
 4         self.name=name
 5         self.age=age
 6         self.sex=sex
 7 
 8     def run(self): self=obj
 9         print('%s is running' %self.name) obj.name
10 
11     def f1():
12         print('from f1')
13 
14     def f2(self):
15         pass
16 
17 obj=People('egon',18,'male') People.__init__(obj,'egon',18,'male')
18 obj1=People('egon1',18,'male') People.__init__(obj,'egon',18,'male')
19 obj2=People('egon2',18,'male') People.__init__(obj,'egon',18,'male')
20 
21 obj.run()
22 obj1.run()
23 obj2.run()
24 
25 print(People.f1)
26 People.f1()
27 print(obj.f1)
28 obj.f1() People.f1(obj)

 




五:一切皆对象:在python3中统一了类与类型的概念,类即类型
1 l=list([1,2,3])
2 print(type(l))
3 print(type(obj))
4 l.append(4)

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯