Python 对象 --组合,绑定

本文介绍了Python中如何通过组合而非继承来实现类的设计,并提供了一个具体示例。此外,还探讨了类对象、实例对象的概念及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

组合:

当对象之间无法继承和多继承时,此时可能需要用到组合。

比如一个水池里面有鱼和乌龟,此时肯定不能继承

组合代码如下:

class Turtle:
    def __init__(self,x):
        self.num = x

class Fish:
    def __init__(self,x):
        self.num = x

class Pool:
    def __init__(self,x,y):
        self.turtle = Turtle(x)
        self.fish = Fish(y)

    def print_num(self):
        print("there are turtles %d, fish %d" % (self.turtle.num,self.fish.num))

pool = Pool(1,10)
pool.print_num()

类、类对象和实例对象

类定义后也叫类对象

比如下图的C便是类对象


类定义的属性都是静态属性,

当属性的名字和方法相同,属性会覆盖方法。如下:


为了避免名字上的冲突,大家需要遵守一些约定俗成的规矩:

1.不要试图在一个类里边定义出所有能想到的特性和方法,应该利用继承和组合机制来进行扩展

2.用不同的词性命名,如属性名用名词,方法名用动词


什么是绑定:

Python严格要求方法需要有实例才能被调用,这种限制其实就是python所谓的绑定概念

在类没有实例化时,不要调用类中的方法。如下:


之所以会出现这个error,是因为函数中没有self这个变量用来绑定真正的对象实例

可以通过使用__dict__来查看对象的属性。如下图,dd的属性是字典,内容为空

类中定义的属性和方法都是静态的,即使del CC,即将CC类删掉,CC的实例也依然可以调用CC中的方法,因为静态变量一直存在,直到程序退出才释放空间。尽量使用实例属性,不要使用类属性,类属性主要用来跟踪一些值



### 如何下载并安装 `get-pip.py` 脚本 #### 下载 `get-pip.py` 为了获取 `get-pip.py` 文件,可以通过访问官方 PyPA (Python Packaging Authority) 提供的链接完成。以下是具体方法: 1. 打开浏览器并导航至以下 URL 地址: [https://bootstrap.pypa.io/get-pip.py](https://bootstrap.pypa.io/get-pip.py)[^1]。 2. 将该页面的内容保存为名为 `get-pip.py` 的文件。可以在 Windows 上右键点击页面中的内容,选择“另存为”,或者通过命令行工具如 `wget` 或 `curl` 来实现自动化操作。 例如,在 Linux/MacOS 中运行如下命令即可下载: ```bash curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ``` 在 Windows 命令提示符中也可以执行类似的命令(如果已配置 curl 工具)。 --- #### 安装 `get-pip.py` 一旦成功下载了 `get-pip.py` 文件,就可以继续进行安装过程。以下是针对不同环境的具体说明: ##### 对于 Windows 用户 假设已经将 `get-pip.py` 文件放置在一个特定目录下(比如 C:\Users\YourName),则需要打开 CMD 并切换到此路径。接着输入以下命令启动安装程序: ```cmd python get-pip.py ``` 这会自动检测当前系统的 Python 版本,并尝试安装对应的 PIP 到环境中。 注意:某些情况下可能需要管理员权限才能顺利完成安装。此时应以管理员身份重新启动 CMD 后再重复上述步骤。 ##### 针对自定义包源的情况 如果有特殊需求指定本地存储库作为依赖项来源,则可附加额外参数调用脚本。例如下面的例子展示了如何利用本地磁盘上的资源完成安装工作: ```cmd python.exe get-pip.py --no-index --find-links=D:\python27\packages ``` 此处指定了不查询在线索引(`--no-index`)而仅查找位于 D 盘 python27 文件夹下的 packages 子目录内的可用组件列表[^2]。 ##### 关于多版本 Python 系统冲突处理建议 当存在多个 Python 解释器共存时可能会遇到一些麻烦事。为了避免错误地关联旧版解释引擎(像默认选择了较低编号版本),推荐采用显式的调用方式确保目标明确指向期望使用的那个实例。比如说要特别绑定给定的 Python3.6 实例而非其他更低级别的替代品的话,可以这样写入终端窗口里执行相应动作: ```bash curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6 - ``` 这条语句组合起来的作用就是先远程抓取最新发布的 pip 初始化脚本之后立即管道传递过去交给超级用户模式下的精确匹配对象去解析加载从而达成目的[^3]. 另外值得注意的是对于较老一点的基础架构譬如 Python 2.7 这种情况而言虽然理论上支持但实际操作过程中往往面临更多兼容性挑战所以最好考虑升级整个平台框架或者是借助第三方发行版解决方案简化流程减少潜在风险因素影响效率成果展示效果等方面考量[^4]. --- ### 总结 综上所述,无论是哪种操作系统环境下都可以遵循以上指导方针顺利搞定关于怎样正确取得以及部署应用 `get-pip.py` 此类任务啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值