属性访问

类属性与对象属性

在类中定义的名字,都是类的属性,细说的话,类有两种属性:数据属性和函数属性,可以通过__dict__访问属性的值,比如Person1.__dict__['student'],但Python提供了专门的属性访问语法

print(Person1.student )# 访问数据属性,等同于Person1.__dict__['student']
print(Person1.run) # 访问函数属性,等同于Person1.__dict__['run'] """结果如下""" 周杰伦
<function Person1.run at 0x0000029E9DCDA950>

操作对象的属性也是一样

print(per1.name)  # print(per1.__dict__['name'])
print(per1.age)
res = per1.hobby = 'JayChou' # 新增,等同于res=per1.__dict__['hobby']='JayChou'
print(res)
print(per1.hobby)
del per1.hobby # 删除,等同于del per1.__dict__['hobby']

对象的名称空间里只存放着对象独有的属性,而对象们相似的属性是存放于类中的。对象在访问属性时,会优先从对象本身的__dict__中查找,未找到,则去类的__dict__中查找


self理解

  • self和对象指向同一个地址,可以认为self就是对象的引用
  • 在实例化对象时,self不需要开发者传参,Python自动将对象传递给self
  • self只有类中定义实例方法的时候才有意义,在调用的时候不必传入相应的参数,
  • 而是由解释器自动取指向
  • self的名字时可以更改的,可以定义成其他的名字,只是约定俗成的定义成了self
  • self指的是类实例对象本身
class Person:
def __init__(self,pro):
self.pro=pro
def geteat(s,name,food):
# print(self)
print('self在内存中的地址%s'%(id(s)))
print('%s喜欢吃%s,专业是:%s'%(name,food,s.pro)) zs=Person('心理学')
print('zs的内存地址%s'%(id(zs)))
zs.geteat('小王','榴莲')

最新文章

  1. Nginx在线服务状态下平滑升级或新增模块的详细操作
  2. Git撤销提交
  3. java怎么建立JAVA工程项目?
  4. DP:Space Elevator(POJ 2392)
  5. How to delete expired archive log files using rman?
  6. chrome调试js工具的使用
  7. 从robots.txt開始网页爬虫之旅
  8. mapreduce (五) MapReduce实现倒排索引 修改版 combiner是把同一个机器上的多个map的结果先聚合一次
  9. 更改navigationController push和pop界面切换动画
  10. ThinkPHP中的CURD操作
  11. SQL Server AlwaysOn中的几个误区
  12. TypeUtils -- Object 转为 强类型
  13. 《java入门第一季》之参数引用
  14. vue-cli —— 项目打包及一些注意事项
  15. flask No such command &quot;init-db&quot;.
  16. DOM 操作成本究竟有多高,HTML、CSS构建过程 ,从什么方向出发避免重绘重排)
  17. BZOJ1022[SHOI2008]小约翰的游戏——anti-SG(反尼姆博弈)
  18. COGS.1901.[模板][国家集训队2011]数颜色(带修改莫队)
  19. [LeetCode] 339. Nested List Weight Sum_Easy tag:DFS
  20. 使用angular-cli脚手架快速搭建项目

热门文章

  1. Windows Server体验之升级安装
  2. Beats: 使用 Filebeat 进行日志结构化
  3. 在 Kubernetes 容器集群,微服务项目最佳实践
  4. shell分割字符串并赋值给变量
  5. 天翼云上新增IP备案具体操作步骤
  6. ELK基于ElastAlert实现日志的微信报警 ---docker环境
  7. OpenJudge 1.5.35:求出e的值
  8. 2022.9.10-2022.9.12 Java第一次课总结
  9. FluentValidation 验证(一):WebApi 中使用 基本使用
  10. 关于多个 Kubernetes 集群指标的采集操作