python-类方法和属性

#类方法,属性和迭代器
#为了类是新型的,应该把语句__metaclass__=type放在模块的开始,
#或者子类化内建类object
class newtype(object):pass#构造方法:一个对象创建后,会立即调用构造方法,即__init__
class stu:def __init__(self):self.num=56student=stu()
print(student.num)class cls:def __init__(self,name):self.name=namecl=cls('TXY')
print(cl.name)#若一个类的构造方法被重写,那么就需要调用超类的构造方法,
#否则对象可能不会被正确的初始化#调用未绑定的超类构造方法:类名.__init__
class shape:def __init__(self):#在调用一个实例的方法时,self参数被自动绑定到实例:绑定方法self.area=100
class rect(shape):def __init__(self):shape.__init__(self)#实例不会绑定,参数可以自由提供self,:未绑定方法self.width=10self.height=10rec=rect()
print(rec.area)
print(rec.width)#使用super函数
class circle(shape):def __init__(self):super(circle,self).__init__()self.r=10
cir=circle()
print(cir.area)
print(cir.r)#成员访问:
'''
基本的序列和映射规则
__len__(self):返回集合中的项目数量
__getitem__(self,key):返回键对应的值
__setitem__(self,key,value):按一定的方式存储与key相关的value
__delitem__(self,key):对一部分对象使用del语句时被调用
'''#创建一个无穷序列
import math
def checkindex(key):if not isinstance(key,int):raise TypeErrorif key<0:raise IndexErrorclass AS:def __init__(self,start=0,step=1):self.start=startself.step=stepself.change={}def __getitem__(self,key):checkindex(key)try:return self.change[key]except KeyError:return self.start+key*self.stepdef __setitem__(self,key,value):checkindex(key)self.change[key]=value
s=AS(1,2)
print(s[4])#子类化列表,字典和字符串
'''
实现一个和内建列表行为相似的序列,list没有被重写的方法可以直接调用
'''
class MyList(list):def __init__(self,*args):super(MyList,self).__init__(*args)self.counter=0def __getitem__(self,index):self.count+=1return super(MyList,self).__getitem__(index)#属性:通过访问器定义的特性被称为属性
#创建属性的一种机制:property函数
__metaclass__=type
class Rect:def __init__(self):self.width=0self.height=0def getSize(self):return self.width,self.heightdef setSize(self,size):self.width,self.height=sizesize=property(getSize,setSize)#创建了属性sizerect=Rect()
rect.width=20
rect.height=30
print(rect.getSize())
rect.size=(100,100)
print(rect.getSize())

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

taro中子父传值

其实网上很多方法,我这只是一个简单的demo,废话不多说直接上代码 import Taro, { Component } from tarojs/taro import { View, Text } from tarojs/components import ./index.less//子组件 class Child extends Component{constructor(props) {super(props);this.state ({}…

如何计算感受野(Receptive Field)

深度神经网络中的感受野(Receptive Field) 本文转载自知乎&#xff1a;深度神经网络中的感受野(Receptive Field) - 蓝木达的文章 - 知乎 在机器视觉领域的深度神经网络中有一个概念叫做感受野&#xff0c;用来表示网络内部的不同位置的神经元对原图像的感受范围的大小。神经元…

物理学需要哲学,哲学需要物理学

来源&#xff1a;微信公众号“Philosophia 哲学社”撰文&#xff1a;卡洛罗威利&#xff08;Carlo Rovelli&#xff09;翻译&#xff1a;朱科夫「反对哲学」是一位当代伟大的物理学家——诺贝尔物理奖得主、基本粒子物理「标准模型」的奠基人斯蒂文温伯格&#xff08;Steven We…

python-迭代器和生成器

property函数可以用0&#xff0c;1&#xff0c;3或4个参数来调用。如果没用参数&#xff0c;产生的属性既不可读&#xff0c;也不可写。如果只使用一个参数调用(一个取值方法)&#xff0c;产生的属性是只读的。第三个参数(可选)用于删除特性的方法(它不要参数)。第四个参数(可选…

[转帖]Oracle 11G RAC For Windows 2008 R2部署手册

Oracle 11G RAC For Windows 2008 R2部署手册&#xff08;亲测&#xff0c;成功实施多次&#xff09; https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 服务器规划 1、建议使用两台硬件配置一模一样的服务器来作为 RAC 环境的两个物理节点 2、服务器至少需要配置两块物…

生日快乐送女朋友的网页生日礼物模版

生日快乐送女朋友的网页生日礼物模版 Demo: http://sylvanding.online/happy-birthday-20221120 仓库&#xff1a;https://github.com/sylvanding/happy-birthday-20221120 参考 背景 https://codepen.io/arcs/pen/XKKYZW蛋糕 https://codepen.io/fixcl/pen/AaBNZB卡片 http…

美国独步世界的八大领域

来源&#xff1a;世界先进制造技术论坛一、美国诺贝尔奖获得者世界第一

python-文件和流

#标准库导入自己的模块:import syssys.path.append("模块路径")import sys sys.path.append(x:/Users/Dell10/Desktop/test.py)#告诉解释器还需要导入的模块路径&#xff0c;注意反斜杆的写法 import test#导入模块&#xff0c;导入时创建了.pyc文件 #模块导入类似以…

spoj839 Optimal Marks(最小割,dinic)

题目大意&#xff1a; 给你一个无向图\(G(V,E)\)。 每个顶点都有一个int范围内的整数的标记。 不同的顶点可能有相同的标记。 对于边\((u,v)\)&#xff0c;我们定义\(Cost(u,v)mark [u]\ \ xor\ \ mark [v]\)。 现在我们知道某些节点的标记了。你需要确定其他节点的标记&#x…

Hinton的胶囊网络不太行?CVPR Oral论文:不比卷积网络更「强」

来源&#xff1a;机器学习研究组订阅在一篇 CVPR 2021 Oral 论文中&#xff0c;来自慕尼黑大学、微软亚研的研究者对胶囊网络和卷积网络进行了全面的对比。一系列实验表明&#xff0c;一些被认为对胶囊网络&#xff08;CapsNet&#xff09;至关重要的设计组件实际上会损害它的鲁…

Python程序生成.exe的可执行文件

Python程序生成.exe的可执行文件 1&#xff09;编写生成exe的脚本程序setup.py #codingutf-8 #exe文件生成脚本 from distutils.core import setup import py2exe setup(console[test.py])#test.py为应用程序文件 2&#xff09;将应用程序test.py和脚本程序放在同一个文件夹下A…

数量庞大!中国成长型AI企业研究报告

来源&#xff1a;德勤Deloitte编辑&#xff1a;蒲蒲日前&#xff0c;德勤、英特尔和深圳人工智能行业协会联合发布《中国成长型AI企业研究报告》。该报告通过对数千家成长型AI企业数据的分析研究&#xff0c;几百家企业的走访以及和近百家优秀企业的深度合作&#xff0c;就中国…

Python+Selenium基础篇之2-打开和关闭火狐浏览器

本节介绍如何初始化一个webdriver实例对象driver&#xff0c;然后打开和关闭firefox浏览器。要用selenium打开fiefox浏览器。首先需要去下载一个driver插件geckodriver.exe&#xff0c; 下载地址https://github.com/mozilla/geckodriver/releases&#xff0c;下载好这个exe文件…

Oracle 数据库

Oracle 12c 数据库学习记录&#xff1a;study 1&#xff1a; 0.Oracle例程服务的启动net start oracleserviceorcl 1.查看数据库的初始化参数&#xff1a;通常登录sys用户&#xff1a;sqlplus / as sysdba&#xff1b;2. 查看内存方面的参数(模糊匹配)&#xff1a;show paramet…

除了芯片,我们还应关注这六大核心技术!

来源&#xff1a;疯狂机械控企业想发展自己还是需要掌握核心技术。除了芯片以外&#xff0c;还有哪些核心技术是我们重点关注的呢&#xff1f;01 软件定义机器▼设备智能化的体现就是典型的软件定义机器&#xff0c;包括机器轻松连接至互联网&#xff1b;将APP和分析结果嵌入机…

matlab技巧

%matlab 编程技巧 %% 1,调试过程中&#xff0c;不能有clear all语句&#xff0c;该语句会清除断点%% 2.通过tic和toc来计算某块代码的执行时间 tic for i1:1000xx1 end timetoc%% 3.图像对象和句柄 %1.设置线条的属性 x0:0.01:10; hplot(x,x.*sin(cos(x)))%h为曲线的句柄 grid …

MySQL GROUP BY 语句

GROUP BY 语句根据一个或多个列对结果集进行分组。 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。 GROUP BY 语法 SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name; 1.group by 可以实现一个最简单的…

中国科学院院士褚君浩:第四次工业革命和智能时代

来源&#xff1a;信息化时代第一次工业革命起源于英国&#xff0c;以机械化为特征。第二次工业革命&#xff0c;以电气化为特征。第三次工业革命&#xff0c;以信息化为特征。现阶段&#xff0c;正值第四次工业革命&#xff0c;此次工业革命具有以下三个特征&#xff1a;信息科…

数据的描述统计量

一、本文简介   一组样本数据分布的数值特诊可以从三个方面进行描述&#xff1a; 1、数据的水平&#xff1a;也称为集中趋势或位置度量&#xff0c;反应全部数据的数值大小。 2、数据的差异&#xff1a;反应数据间的离散程度。 3、分布的形状&#xff1a;反应数据分布的偏度和…

Science:细胞如何测量自身的大小?答案是:DNA含量

图片显示的是一个茎尖分生组织(在中间)&#xff0c;在它的两侧出现了花蕾。绿色标记的细胞即将进入DNA复制。来源&#xff1a;生物通自从350多年前科学家在显微镜下发现细胞以来&#xff0c;他们就注意到每一种细胞都有其特有的大小。从微小的细菌到几英寸长的神经元&#xff0…