python 面向对象学习
发布日期:2021-06-30 15:40:23
浏览次数:2
分类:技术文章
本文共 2326 字,大约阅读时间需要 7 分钟。
PHP交流群:294088839
Python交流群:652376983
# class Ren(object):# name = '人'# high = '一人高'# wight = '一人重'# # 私有属性# __money = '我有十块钱'# __age = 20# def run(self):# print(self.name)# print('跑步')# def say(self):# lie = '我很欣赏你'# print(self.__money)# print(lie)# # 私有调用 在函数内进行调用# self.__lie()# # 私有方法# def __lie(self):# lie = '我很欣赏你'# print(lie)# # 获取私有属性的值# def get(self,g):# if g == 'money':# return self.__money# else:# return self.__age# # 设置值# def set(self,g):# self.__age = g# # 被 classmethod() 函数处理过的函数 能被类所调用也能被对象所调用# # 消耗低 动态方法# # 这种形式叫 装饰器# # @classmethod# def moRi(self):# print('世界末日')# # 被 classmethod() 函数处理过的函数 能被类所调用也能被对象所调用# # 这种形式叫 函数转换# mr = classmethod(moRi)# # 静态方法 通过staticmethod() 定义静态方法没有self语句# # 静态方法速度快# # @staticmethod# def roRi():# print('世界末日吗')# ro = staticmethod(roRi)# if __name__ == '__main__': # zhangsan = Ren() # print(zhangsan.say()) # print(zhangsan.get('money')) # print(zhangsan.get('age')) # print(zhangsan.set(30)) # print(zhangsan.get('age')) # print(zhangsan.name) # Ren.mr() # Ren.ro() # 私有方法不能再外部访问 # print(zhangsan.__lie)# 方法的定义# 和函数定义一样 但是需要self作为第一个参数# 类方法也分为 公有方法和私有方法# 私有方法: 不能被外部的类和方法调用,私有方法的定义和私有属性的定义都一样,在方法的前面# 加上 __ 双下划线就可以了# 类方法 被 classmethod() 函数处理过的函数 能被类所调用也能被对象所调用# 静态方法: 相当于 全局函数 可以被类直接调用 可以被所有实例对象共享# 通过staticmethod() 定义静态方法没有self语句# self 参数:# 用于区分函数和类的方法 self 参数表示指向对象本身# python 对象高级# 内部类 与 魔术方法# 所谓的内部类 就是在类的内部定义的类# 主要目的是为了更好的抽象现实世界class Milo(): class Test(): var1 = '我是内部类' # 构造函数 在实例化的时候调用 def __init__(self): print('你好,我是构造函数') # 在使用类的时候 会自动触发 def __str__(self): return '我是Milo类的实例化的对象' # 析构函数 在释放的时候调用 def __del__(self): print('我是析构函数')# 怎么调用类中的内部类milo = Milo()test = milo.Test()print(test.var1)# 这样比较复杂 所以test = Milo.Test()print(test.var1)print(milo)# 类的继承# 面向对象的变成带来的主要好吃之一就是代码重用 实现这种重用方法之一通过继承机制# 通过继承创建的心类 称为子类或派生类 被继承的类称为基类 父类 或者 超类# 继承语法# 如果在子类中需要父类的构造方法就需要显示的调用父类的构造方法 或者补充协议父类的构造方法# 在调用基类的方法时 需要加上基类的类名前缀 且需要带上self参数变量 区别在于类中调用普通函数时# 并不需要带上 self参数class Whl(Milo): def __init__(self): print('子类的构造方法')whl = Whl()print(whl)
转载地址:https://jsonll.blog.csdn.net/article/details/81626984 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月26日 04时56分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Servlet_体系结构
2019-05-01
Servlet_urlpartten配置
2019-05-01
Request_原理
2019-05-01
Request_继承体系
2019-05-01
Request_获取请求行数据_方法介绍
2019-05-01
spring的优势
2019-05-01
前端权限控制:获取用户信息接口构造数据
2019-05-01
前端权限控制:实现思路分析-待修改
2019-05-01
有状态服务和无状态服务
2019-05-01
基于jwt的用户鉴权:配置拦截器并测试
2019-05-01
POI的概述
2019-05-01
DataURL:实现员工头像保存
2019-05-01
DataURL:员工头像回显
2019-05-01
七牛云存储:断点续传
2019-05-01
JasperReport:声明周期
2019-05-01
递归求阶乘
2019-05-01
递归遍历目录
2019-05-01
IO流概述和分类
2019-05-01
字节流写数据
2019-05-01
字节流写数据的三种方式
2019-05-01