Python进阶(十四)----空间角度研究类,类与类之间的关系
Python进阶(十四)----空间角度研究类,类与类之间的关系
一丶从空间角度研究类
对象操作对象属性
class A():
address = '沙河'
def __init__(self, name):
self.name = name
def func(self): # 给对象封装一个属性
if self.name == 'ls':
self.age = 100
obj = A('ls') #实例化一个对象
# 类的外部给对象封装属性
obj.sex = '男'
print(obj.__dict__) #查看对象空间的属性
# 类的内部,使用方法 给对象封装属性
obj.func()
print(obj.__dict__) #查看对象空间的属性
###总结:
# 对象的属性不仅可以在`__init__`里面添加,还可以在类的其他方法或者类的外面添加。
类名操作类中的属性
class A():
address = '沙河'
def __init__(self, name):
self.name = name
def func1(self):
A.country = '中国'
obj = A('ls') #实例化一个对象
## 类 外部给类封装属性
A.temp='39℃' # 给类添加一个属性
print(A.__dict__) #查看类名称空间的属性
## 类 内部调用函数封装属性
A.func1(obj) # 由于类要调用类中方法必须传递参数给self.在这里可以把obj对象作为参数传递给self,相当于对象调用了这个方法(obj.func1())
print(A.__dict__) #查看类名称空间的属性
###总结:
# 类的属性不仅可以在类内部添加,还可以在类的外部添加。
类对象指针
所谓指针:当实例化生成对象时,会产生一个对象指针,存在对象名称空间. 用于指向类空间
class A():
class_attr='123'
def __init__(self,name):#实例化过程自动执行__init__方法,给对象封装属性,还封装一个类对象指针
self.name=name
a=A() #实例化对象 a
a.class_attr # a是对象的名称空间,不存在class_attr属性. 这时类对象指针指向类名称空间,类名称空间存在class_attr属性.a对象就能获得class_attr属性.
#总结:
# 类对象指针就是存在对象中,用于指向回生成对象的这个类.
对象取值顺序
对象查找属性的顺序:先从对象空间------> 类空间------> 父类空间
类名取值顺序
类名查找属性的顺序:先从本类空间-------> 父类空间
二丶类与类的关系
依赖关系:
依赖关系 (主从关系) 将一个类的类名,或者对象传给另一个类的方法中
class Elephant():
def __init__(self, name):
self.name = name
def open(self, ref): # 依赖关系, ref是形参,接收另一个类生成的对象
print(f'{self.name}
Python进阶(十四)----空间角度研究类,类与类之间的关系的更多相关文章
- Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究
Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: 反射的概念是由Smith在1982年首次提出的 ...
- 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘
孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...
- day22——从空间角度研究类、类与类之间的关系
day22 从空间角度研究类 何处添加对象属性 在类的______init______可以添加 class Human: mind = "有思想的" def __init__(se ...
- Python进阶(十五)----面向对象之~继承(单继承,多继承MRO算法)
Python进阶(十五)----面向对象之~继承 一丶面向对象的三大特性:封装,继承,多态 二丶什么是继承 # 什么是继承 # b 继承 a ,b是a的子类 派生类 , a是b的超类 基类 父类 # ...
- J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言 搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理. ...
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
- Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理)
Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理) 一丶封装 , 多态 封装: 将一些东西封装到一个地方,你还可以取出来( ...
- 初学 Python(十四)——生成器
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
- Python第二十四天 binascii模块
Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...
随机推荐
- 解决:Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceMode
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Eric_K1m/article/deta ...
- Mark about 《美国债务危机 》
1.债务是有周期的: 2.其周期性与科技进步水平无关: 3.危机的前夕往往是一片祥和:1925-1927年,主流的媒体倾向于报道xxx公司营收超过xx亿元:无线收音机技术得到长足发展:商业银行扩张势头 ...
- [windows bat]如何启动一个新的cmd窗口并在其内执行命令
两种方式: start cmd /k echo Hello, World! # # 执行完毕以后,新开的窗口不会自动关闭 start cmd /C pause # 执行完毕以后,新开的窗口会自动关闭 ...
- An unexpected exception occurred while binding a dynamic operation 错误的一种情况
这种错误,出现在dynamic传值的时候,无法动态访问变量. 出错原因是: 使用了嵌套类,class里面又定义了class
- [LeetCode] 901. Online Stock Span 线上股票跨度
Write a class StockSpanner which collects daily price quotes for some stock, and returns the span of ...
- IDEA中类文件显示J,IDEA Unable to import maven project: See logs for details
今天用了下lemon清理了下垃圾后,IDEA打开项目类文件图标由C变为J,在IDEA右侧的Maven Project中点击刷新提示IDEA Unable to import maven project ...
- 最常见的Java面试题及答案汇总(二)
上一篇:最常见的Java面试题及答案汇总(一) 容器 18. java 容器都有哪些? 常用容器的图录: 19. Collection 和 Collections 有什么区别? java.util.C ...
- kafka高可用性集群
kafka集群并测试其高可用性 介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站 ...
- jdbc(mysql)数据库连接
0.将驱动引入项目 在项目根目录新建文件夹lib,把数据库驱动mysql-connector-java-5.1.7-bin.jar放入该文件夹. 右键点击项目名称->properties-> ...
- 【剑指offer】链表中的倒数第k个结点
输入一个链表,输出该链表中倒数第k个结点. 分析: 定义两个结点p1和p2都指向头节点,p1先走k-1步,然后p1和p2一起走,当p1走到链表尾部时,p2指向的结点就是倒数第k个结点 遍历一遍链表即可 ...