python面向对象基础入门

面向对象

基本的实现方法大概如此

python 复制代码
class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def print_score(self):
        print('%s: %s' % (self.name, self.score))

在面向对象的思想中,面对一个问题,首先应该考虑这个问题所对应的对象应该有什么属性,即数据

在这段代码中,

括号中的object为继承的类,如果没有合适的继承类,默认写上object,self为必须要写入的参数

实例化:名字 = 对象(有参数则写参数) -- self不用传入

在实例化后也可以增加属性(对象是动态的)

让内部属性不被外部访问,可以把属性的名称前加上两个下划线__

但本身仍然可以被访问,通过在访问时加入跟定义时一样加入两个下划线进行访问,但强烈建议不要这么做

继承与多态

判断一个变量是否是某个类型可以用isinstance()判断,括号中写入两个参数

继承和多态的应用主要通过外部函数调用中不同的对象参数,可以呈现出不同的方法调用

核心:参数为父类,而接收的类型既可以是父类,也可以是继承该父类的子类

当然,只要对象中有同样的方法,可以不严格参照继承的体系

相关推荐
wljy11 分钟前
二、静态库的制作和使用
linux·c语言·开发语言·c++
道剑剑非道14 分钟前
FFmpeg 6.0 实战:用 C++ 封装摄像头采集与 RTSP 推流
开发语言·c++·ffmpeg
m0_4636722019 分钟前
golang如何实现群聊功能_golang群聊功能实现策略
jvm·数据库·python
_3762715319 分钟前
如何利用 Provide 注入 API 实例?解决组件库依赖全局接口痛点
jvm·数据库·python
2401_8504916525 分钟前
如何用 keys 与 values 分别提取 Map 的所有键或所有值
jvm·数据库·python
天天进步201530 分钟前
Python全栈项目实战:基于深度学习的语音合成(TTS)系统
开发语言·python·深度学习
qq_2546744131 分钟前
Ubuntu 国内源配置方法
python
2301_8159019733 分钟前
MySQL从库同步速度慢的硬件原因_分析磁盘性能与内存占用
jvm·数据库·python
2401_8463395633 分钟前
SQL如何检测分组内是否存在满足条件的数据_EXISTS结合分组
jvm·数据库·python
iAm_Ike34 分钟前
Bootstrap中常用的文本颜色、背景颜色及边框色类
jvm·数据库·python