python-类的基本知识

#类的基本知识
#类对象的优点:多态,封装,继承#多态
from random import choice
s=['A',"B","C","D"]
ch=choice(s)#从列表中随机选择元素,并返回
print(ch)#例:序列中的count函数为多态函数,不管时字符串类型还是列表类型,都可以使用该函数
#很多函数和运算符都是多态的,不需要确定对象的具体类型#封装:是指向程序中的其他部分隐藏对象的具体实现细节的原则#继承:子类,超类(基类)
#class语句会在函数定义的地方创建自己的命名空间
_metaclass_=type#确定使用新式类,可以通过type(对象)来查看实例对象所属的类class People:def getName(self):#self参数为对象自身的引用return self.namedef setName(self,name):self.name=namedef Print(self):print("Hello world! I'm %s."%self.name)
person=People()
person.setName("Li")
print(person.getName())
person.Print()person.name='Wang'
print(person.getName())
person.Print()#上述self参数:方法将它们的参数判定到所属的实例上,因此无需显示提供,方法和普通函数可以互相绑定,如下;
def Prints():print("function Prins")
person.Print=Prints#函数绑定不能加括号
person.Print()func=person.Print#通过变量引用类方法,实际上func还是绑定到了对象上,因为该方法访问了自身#默认情况下,可以在外部访问对象的特性,可以通过在方法或特性的名字前面加双下划线可以变为私有的
class stu:def __getId(self):print("you can't see id!")def Myget(self):self.__getId(self)
st=stu()
st._stu__getId()#实际上双下划线被解释为单下划线加加类名加私有方法,即这样可以访问#from module import *:不会导入前面有下划线的名字class stuff:num=0#在类的作用域定义了一个可供所用实例访问的变量def init(self):stuff.num+=1
x=stuff()
x.init()
print(x.num)
y=stuff()
y.init()
print(y.num)
#上述x,y操作了同一个变量,但可以将某个实例的该变量重新绑定到其他值上,而屏蔽类范围内的变量#超类:在类定义的类名后的圆括号里指定多个该类的超类,子类可以扩展超类的定义
class Others:def Output(x=None):print("others data!")
class shape:def init(self):self.block=[]def getdata(self,data):return [x for x in data if x not in self.block]
class rect(shape,Others):#多重继承,若shape,Others有同名方法,则shape的方法可用,而Others的该方法被重写(使其不可访问)def init(self):self.block=['A']sh=shape()
sh.init()
print(sh.getdata([1,2,3]))r=rect()
r.init()
r.Output()
print(r.getdata(['A','b','c']))#使用内建函数issubclass(x,y)函数可以查看一个类x是不是另一个类y的子类,返回布尔值
print(issubclass(rect,shape))print(rect.__bases__)#使用__base__或__bases__特性可以查看类的基类print(isinstance(r,rect))#使用函数isinstance(x,y)检查x是否为类y的(间接)实例,返回布尔值print(r.__class__)#使用__class__特性检查一个对象属于哪个类
 

运行结果:

 

 

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

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

相关文章

ElementUI实现地址自动补全文本框

新冠疫情自我检测系统网页设计开发文档 Sylvan Ding 的第一个基于 Vue.js 的项目. 本项目所提供的信息,只供参考之用,不保证信息的准确性、有效性、及时性和完整性,更多内容请查看国家卫健委网站! Explore the docs View Demo…

孙茂松:机器能创造吗?

来源:TsinghuaNLP中国人工智能学会主办的2021全球人工智能技术大会(GAITC 2021)6月5日-6日在杭州举行。6月5日晚,中央音乐学院音乐人工智能系主任李小兵教授和清华大学人工智能研究院常务副院长孙茂松教授共同主持了《当AI与艺术相…

Nginx+Fastdfs

注: 在配置时,使用非root用户配置 fdfs/fdfs 1. 集群部署 1.1. 准备 创建目录:本文档中所有内容安装到/fdfs目录 [fdfs5861be93b5b0 /]$mkdir -p /fdfs/fastdfs/data /fdfs/nginx/nginx_temp /fdfs/soft && ln -s /fdfs/fastdf…

6小时完成,Jeff Dean领衔AI设计芯片方案登Nature,谷歌第四代TPU已用 芯快递 今天...

来源:机器之心编辑:杜伟、陈萍将芯片的布局规划看作一个深度强化学习问题,谷歌大脑团队希望用 AI 来提升芯片设计效率。基于 AI 的最新设计方案可以在数小时内完成人类设计师耗费数月才能完成的芯片布局,这将有可能引领一场新的芯…

python-异常

#异常:每个异常都是一些类的实例,这些实例可以被引发,也可以进行捕捉; #异常的引发:通过raise语句可以引发异常raise Exception raise Exception("MyException!")#通过dir函数可以得到模块的内容 import mat…

在Docker中运行Vue.js项目(开发环境/生产环境)

新冠疫情自我检测系统网页设计开发文档 Sylvan Ding 的第一个基于 Vue.js 的项目. 本项目所提供的信息,只供参考之用,不保证信息的准确性、有效性、及时性和完整性,更多内容请查看国家卫健委网站! Explore the docs View Demo…

所有竞争,本质都是“硬核能力”之争

来源:中科创星文 :君莫笑轮值主编:智勇 值班编辑 :金木研一、科技创新,是世界进步的第一推动力站在5000年后的今天,回首人类的发展进程,从石器时代—青铜时代—铁器时代—蒸汽时代—电气时代—信…

深度报告:芯片设计EDA 2.0时代,三大路径搞定六大挑战

编辑:智东西内参EDA是Electronic Design Automation的缩写,几十年来成为芯片设计模块、工具、流程的代称。从仿真、综合到版图,从前端到后端,从模拟到数字再到混合设计,以及工艺制造等,EDA工具涵盖了芯片设…

2018上海

转载于:https://www.cnblogs.com/kakaisgood/p/10158442.html

python-类方法和属性

#类方法,属性和迭代器 #为了类是新型的,应该把语句__metaclass__type放在模块的开始, #或者子类化内建类object class newtype(object):pass#构造方法:一个对象创建后,会立即调用构造方法,即__init__ class…

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

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

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

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

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

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

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

美国独步世界的八大领域

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

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

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

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

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

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

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

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

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