python面向对象

2023-05-16

面向对象中的几点概念:

类:用户定义的对象原型(prototype),该原型定义了一组可描述该类任何对象的属性,属性是数据成员(类变量 和 实例变量)和方法,可以通过 ‘.’ 来访问。说简单一点,类是一个模板,我们可以使用该模板生成不同的具体的对象,来完成我们想要的操作

实例:某一个类的单个对象,例如我们定义了一个 Person 类,而具体的人,比如小明,小黄就是 Person 类的实例

属性:描述该类具有的特征,比如人类具备的属性,身份证,姓名,性别,身高,体重等等都是属性

方法:是该类对象的行为,例如这个男孩会打篮球,那个女孩会唱歌等等都是属于方法,常常通过方法改变一些类中的属性值

定义一个类

Python 中定义类是使用关键字 class,一个简单的实例

class Student:
    pass

# 创建对象实例
stu = Student()
print(stu)
print(property(stu))
print(type(stu))

类属性与方法


类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。

类的方法
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。

self 的名字并不是规定死的,也可以使用 this,但是最好还是按照约定使用 self。

类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类的外部调用。self.__private_methods。

类的专有方法:

__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python面向对象 的相关文章

  • 如何打印前面有一定数量空格的整数?

    C has printf Xd Y 它只打印整数 X 并使其在控制台窗口上占据 Y 空格 例如 printf 3d 10 console 10 printf 5d 5 console 5 我如何在 python 3 中使用它 This pr
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • 是否可以在 IPython 控制台中显示 pandas 样式?

    是否可以显示熊猫风格 https pandas pydata org pandas docs stable user guide style html在 iPython 控制台中 Jupyter 笔记本中的以下代码 import panda
  • 我可以在 matplotlib 中的绘图左侧放置一个垂直颜色条吗?

    来自颜色条方法的 matplotlib 命令摘要 http matplotlib org api pyplot api html highlight colorbar matplotlib pyplot colorbar我知道关键字参数or
  • 在Python中将大文件(25k条目)加载到dict中很慢?

    我有一个大约有 25000 行的文件 它是 s19 格式的文件 每行就像 S214780010 00802000000010000000000A508CC78C 像这样的事情怎么样 我做了一个测试文件 只有一行S21478001000802
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • pandas 数据框的最大大小

    我正在尝试使用读取一个有点大的数据集pandas read csv or read stata功能 但我不断遇到Memory Errors 数据帧的最大大小是多少 我的理解是 只要数据适合内存 数据帧就应该没问题 这对我来说不应该是问题 还
  • Asyncio:从未检索到任务异常的怪异

    假设我有一个简单的代码 import asyncio async def exc print 1 0 loop asyncio get event loop loop create task exc try loop run forever
  • Python 中“is”运算符的语义是什么?

    如何is运算符确定两个对象是否相同 它是如何工作的 我找不到它的记录 来自文档 http docs python org reference datamodel html 每个对象都有一个身份 一个类型 和一个值 对象的身份 一旦发生就永远
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • 如何在 python 中使用交叉验证执行 GridSearchCV

    我正在执行超参数调整RandomForest如下使用GridSearchCV X np array df features all features y np array df gold standard labels x train x
  • Pandas 中每列的曲线拟合 + 外推值

    我有一个包含大约 300 列的数据集 每一列都与深度相关 Pandas DataFrame 的简化版本看起来像这样 import matplotlib pyplot as plt import numpy as np import pand
  • 将 str.contains 映射到 pandas DataFrame

    python 初学者 我正在寻找创建字符串的字典映射以及关联的值 我有一个数据框 想要创建一个新列 如果字符串匹配 则会将该列标记为 x df pd DataFrame comp dell notebook dell notebook S3
  • 如何在类型提示中定义元组或列表的大小

    有没有办法在参数的类型提示中定义元组或列表的大小 目前我正在使用这样的东西 from typing import List Optional Tuple def function name self list1 List Class1 if
  • 将二进制数据视为文件对象?

    在此代码片段 由另一个人编写 中 self archive是一个大文件的路径并且raw file是以二进制数据形式读取的文件内容 with open self archive rb as f f seek offset raw file s
  • 带 Qt 的菜单栏/系统托盘应用程序

    我是 Qt PyQt 的新手 我正在尝试制作一个应用程序 其功能将从菜单栏 系统托盘执行 这里展示了一个完美的例子 我找不到关于如何做到这一点的好资源 有人可以建议吗 Thanks 我认为您正在寻找与QMenu and QMainWindo
  • 如何创建简单的梯度下降算法

    我正在研究简单的机器学习算法 从简单的梯度下降开始 但在尝试用 python 实现它时遇到了一些麻烦 这是我试图重现的示例 我获得了有关房屋的数据 居住面积 以英尺为单位 和卧室数量 以及最终的价格 居住面积 英尺2 2104 卧室 3 价
  • 如何仅读取 CSV 文件每行的第一列 [重复]

    这个问题在这里已经有答案了 如何在Python中读取CSV文件每行的第一列 我的数据是这样的 1 abc 2 bcd 3 cde 我只需要循环第一列的值 另外 当我在 calc 中打开 csv 文件时 每行中的数据都在同一个单元格中 这正常
  • 将函数按元素应用于两个 DataFrame

    如何应用函数z ij f x ij y ij 来自数据框X and Y相同大小并将结果保存到 DataFrameZ 这取决于你有什么样的功能 很多功能已经被矢量化为数据框 例如 等等 所以对于这些功能 你可以简单地做Z X Y or Z X
  • 如何使用 keras.backend.gradients() 获取梯度值

    我试图获得 Keras 模型的输出相对于模型输入 x 而不是权重 的导数 似乎最简单的方法是使用 keras backend 中的 梯度 它返回梯度张量 https keras io backend https keras io backe

随机推荐

  • Error starting ApplicationContext. To display the conditions report re-run your application with ‘de

    查这报错没什么用的 xff0c 得看下面的报错 xff0c Error starting ApplicationContext To display the conditions report re run your application
  • 怎么实现前端table换页效果

    我用的方法是thymeleaf模板的内置page用法搭配后端Page类的数据类型 前端需要在table的外层div后加 span class token tag span class token tag span class token p
  • Linux下报错 \r”: 没有那个文件或目录

    问题出在我是通过windows写指令然后直接上传到linux下的 xff0c dos和unix换行的识别不一样 修正方案 xff0c 编写软件把dos改成unix格式即可
  • linux txt 无法获取文件状态 没有文件或目录

    看linux系统下文件格式是文本文件 xff0c 我就根据文件名 txt去操作 xff0c 没想到一直找不到文件 xff0c 最后灵机一动去掉了txt后缀后成功了 xff0c 现在想是不是因为txt是微软在操作系统上附带的一种文本格式 xf
  • C语言中%c与%s的区别与划分

    文章目录 字符和字符串char和char 转换说明符标志格式 字符和字符串 c格式对应的是单个字符 s格式对应的是字符串 例 xff1a char a char b 20 scanf 34 c 34 amp a 只能输入一个字符 scanf
  • 指针:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数

    Description 调用自定义后移函数move int a int n int m 来进行循环移位 xff0c 对n n lt 20 个整数 xff0c 使其前面各数顺序向后移m个位置 xff0c 最后m个数变成最前面m个数 xff0c
  • 初识机器阅读理解(Machine Reading Comprehension)

    机器阅读理解任务理解与文献查阅 参考博客 xff1a https www jiqizhixin com articles 2018 11 26 10https hanxiao github io 2018 04 21 Teach Machi
  • Java二进制与位运算

    文章目录 进制使用 位运算位运算符 原码 反码 补码规则推导 2 amp 3练习位运算 进制 二进制 xff1a 0 1 xff0c 常以0b xff0c 0B开头十进制 xff0c 0 9八进制 xff0c 0 7 xff0c 常以数字0
  • Python作用域

    局部作用域 在函数内部创建的变量属于该函数的局部作用域 xff0c 并且只能在该函数内部使用 def m x 61 100 print x m 函数内部的函数 变量 x 在函数外部不可用 xff0c 但对于函数内部的任何函数均可用 xff1
  • lsnrctl commond notfound解决办法

    办法就是不解决 直接运行lsnrctl 进入他的命令行之后执行start就行例如 我的lsnrctl在 usr oracle product bin路径下 那就输入 usr oracle product bin lsnrctl 就会进入ls
  • TP-Link TL-WR703N路由器刷打印服务,网络配置及补丁加载

    网上关于Opwnwrt 的文章已经很多了 xff0c 一些是时间比较久 折腾了2台703N路由器 xff0c 其中一台搞成了砖头 xff08 误删文件 xff0c 没有刷不死Bread xff09 第二台成功刷机 整体刷机过程 xff0c
  • Windows Server 2022下Hyper-V NAT单网卡外网访问+物理机通信的几种配置方法及过程

    Windows Server 2022下Hyper V NAT单网卡外网访问 43 物理机通信的几种配置方法及过程 一 前言二 网络连接共享方式2 1 配置过程2 2 联网测试2 3 附加说明 三 WinNAT方式3 1 物理机配置过程3
  • qt远程调试ARM板

    前期准备 使用qt5 8调试 pc机必须能与arm板ssh通信 先查看pc版本的gdb以及gdb使用到python xff08 注意 xff1a qt3 1之后调试需要python xff09 查看gdb版本 可通过qtcreator查看
  • centos7 安装gitlab

    下载rpm文件 在清华大学的镜像网站上找自己需要的gitlab版本 xff0c 地址为 https mirrors tuna tsinghua edu cn gitlab ce yum 2 将rpm文件上传到服务器上 xff0c 可以使用x
  • 单片机开发 --- 定时/计数器

    单片机开发 定时 计数器 一 定时 计数器概要 51单片机有两组定时器 计数器 xff0c 因为既可以定时 xff0c 又可以计数 xff0c 故称之为定时器 计数器 定时器 计数器和单片机的CPU是相互独立的 定时器 计数器工作的过程是自
  • 第十章——UITableView 和 UITableViewController

    许多 iOS 应用程序向用户显示列表项 xff0c 并允许用户选择 xff0c 删除或重新排列列表项 不管是显示用户地址簿中的人员列表的应用程序还是 App Store 上畅销产品的列表 xff0c 都使用了 UITableView UIT
  • Android getDeviceId流程分析

    1 首先来看getDeviceId frameworks base telephony java android telephony TelephonyManager java span class token keyword public
  • Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)

    前言 前面好一阵子忙于写论文和改论文 xff0c 好久没有做新实验了 xff0c 最近又回到做实验是的节奏 xff0c 这感觉很爽 去年实验室买了两台工作站 xff08 4路Titanx 43 2颗 Xeon CPU E5 2637 v3
  • 3D空间位置计算 — 线与面的交点

    线与面的交点 64 PlanePt xff1a 平面内一点 64 PlaneVector xff1a 平面的法向量 64 LinePt xff1a 直线上一点 64 LineVector xff1a 直线的向量 Point3d s poin
  • python面向对象

    面向对象中的几点概念 xff1a 类 xff1a 用户定义的对象原型 xff08 prototype xff09 xff0c 该原型定义了一组可描述该类任何对象的属性 xff0c 属性是数据成员 xff08 类变量 和 实例变量 xff09