问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python中类与对象的其他说明?

发布网友 发布时间:2022-03-03 14:25

我来回答

1个回答

热心网友 时间:2022-03-03 15:54

9.4. 一些说明
数据属性会覆盖同名的方法属性。为了避免意外的名称冲突,这在大型程序中是极难发现的 Bug,使用一些约定来减少冲突的机会是明智的。可能的约定包括:大写方法名称的首字母,使用一个唯一的小字符串(也许只是一个下划线)作为数据属性名称的前缀,或者方法使用动词而数据属性使用名词。
数据属性可以被方法引用,也可以由一个对象的普通用户(客户)使用。换句话说,类不能用来实现纯净的数据类型。事实上,Python 中不可能强制隐藏数据——一切基于约定(如果需要,使用 C 编写的 Python 实现可以完全隐藏实现细节并控制对象的访问。这可以用来通过 C 语言扩展 Python)。
客户应该谨慎的使用数据属性——客户可能通过践踏他们的数据属性而使那些由方法维护的常量变得混乱。注意:只要能避免冲突,客户可以向一个实例对象添加他们自己的数据属性,而不会影响方法的正确性——再次强调,命名约定可以避免很多麻烦。
从方法内部引用数据属性(或其他方法)并没有快捷方式。我觉得这实际上增加了方法的可读性:当浏览一个方法时,在局部变量和实例变量之间不会出现令人费解的情况。
一般,方法的第一个参数被命名为 self。这仅仅是一个约定:对 Python 而言,名称 self 绝对没有任何特殊含义。(但是请注意:如果不遵循这个约定,对其他的 Python 程序员而言你的代码可读性就会变差,而且有些 类查看器 程序也可能是遵循此约定编写的。)
类属性的任何函数对象都为那个类的实例定义了一个方法。函数定义代码不一定非得定义在类中:也可以将一个函数对象赋值给类中的一个局部变量。例如:
# Function defined outside the class
def f1(self, x, y):
return min(x, x+y)
class C:
f = f1
def g(self):
return 'hello world'
h = g
现在 f, g 和 h 都是类 C 的属性,引用的都是函数对象,因此它们都是 C 实例的方法-- h 严格等于 g 。要注意的是这种习惯通常只会迷惑程序的读者。
通过 self 参数的方法属性,方法可以调用其它的方法:
class Bag:
def __init__(self):
self.data = []
def add(self, x):
self.data.append(x)
def addtwice(self, x):
self.add(x)
self.add(x)
方法可以像引用普通的函数那样引用全局命名。与方法关联的全局作用域是包含类定义的模块。(类本身永远不会作为全局作用域使用。)尽管很少有好的理由在方法 中使用全局数据,全局作用域却有很多合法的用途:其一是方法可以调用导入全局作用域的函数和方法,也可以调用定义在其中的类和函数。通常,包含此方法的类也会定义在这个全局作用域,在下一节我们会了解为何一个方法要引用自己的类。
每个值都是一个对象,因此每个值都有一个 类( class ) (也称为它的 类型( type ) ),它存储为 object.__class__ 。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
步步高学习机@iboxH2 H2学习机的屏幕大小? 6-7万左右纯电 女生想买台便宜的小车在城市代步,有什么好推荐?电动车最好? 河南德盛智能环保科技有限公司怎么样? 深圳市德盛铭电科技有限公司怎么样? pvc防水门生产厂家哪个好呢? 晋江市德顺陶瓷建材有限公司简介 酒店家具厂家 梨子酿酒最简单的方法 excel怎么把表格放大 python 中的 类方法 @ classmathod 怎么用 请举一个最简单的例子? python 怎么理解 类 和 self 的用法 和含义 微信怎么看多长时间注册的 怎么看自己的注册多久了 excel库存表自动计算怎么设置? 怎么设置excel表格的公式 iPhone6登录wifi时 在wifi认证界面 点用户名不能弹出键盘 在密码栏可以弹出来 怎么解 如何让表格自动计算 wifi认证界面为什么没有弹出来? 为什么华为手机录屏没有声音呢? 手机和电脑使用同一个,聊天记录能够同步吗? 华为屏幕录制怎么没有声音 华为如何录屏有声音 华为录屏如何选择声音源 华为录屏为啥录不上声音? 华为录屏怎么录游戏声音 示波器自检的步骤 请教一个示波器的问题,RIGOL DS1022C这个示波器是什么要弄到T'D才是正确的显示,AUTO和RUN是不是正确。 RIGOL DS1052E 示波器如何解锁 excel怎样将单元格放大 excel表格怎么把表格变大 excel表格如何放大 怎样把excel表格放大 计算机二级证怎么考? excel表格如何整体放大缩小 全国计算机二级证怎样考 二级计算机证怎么考 在EXCEL里面,如何将表格的放大和缩小 如何放大excel表格 计算机二级证怎么考 怎么考取计算机二级证书 如何把excel放大? excel表格怎么打印时把表格放大 冰箱冷冻室结冰严重怎么快速处理 excel表格 如何把单元格变大 冰箱结冰如何快速处理 Excel中如何将单元格扩大 excel中,如何同时缩小或放大所有单元格尺寸? 如何将做好的excel表格放大?