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__特性检查一个对象属于哪个类
运行结果:
python-类的基本知识相关推荐
- python类和对象_Python类和对象
python类和对象 Python is an object-oriented programming language. Python Classes and Objects are the cor ...
- python类和oop基础知识
文章目录 oop:面向对象程序设计 python类的特点: oop基本概念: 1.属性继承搜索: 2.类和实例: 3.类方法调用 4.编写类树 5.代码重用 oop:面向对象程序设计 1.类:一些函数 ...
- python中、不论类的名字是什么、构造方法的名字都是( )_2020年《python程序设计》基础知识及程序设计598题GA[含参考答案]...
2020年<python程序设计>基础知识及程序设计 598题[含参考答案] 一.填空题 1.表达式 len('abcdefg'.ljust(3)) 的值为_________.(7) 2. ...
- Python培训入门基础知识学什么?
Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...
- 谈谈Python那些不为人知的冷知识(二)
本文转载自Python的编程时光(ID:Python-Time) 小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来. 从上一篇的分享来看,仍然有不少 Pythoner 对这些冷知识存在盲 ...
- python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解
我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器. 代码如下: class Test(): xx = False def __init__(self): pa ...
- python常用知识点总结-python 类知识点总结
python 类知识点总结 面向对象思想: 1.设计的时候,一定要明确应用场景 2.由对象分析定义类的时候,找不到共同特征和技能不用强求 1.简述类.对象.实例化.实例这些名词的含义: 类:从一组对象 ...
- 第八章 Python类中常用的特殊变量和方法
上章花了近三十章节介绍类的知识,本章估计内容也比较多,讲完这些,其实还有更多.为什么这么多类有关的知识呢,这是因为在Python里面一切皆对象,就连整型.浮点数.字符串这些比较常规的类型都是作为类来实 ...
- Python类属性和实例属性分别是什么?
实例属性即同一个类的不同实例,其值是互不关联的,也不会互相影响的,定义时使用"self.属性名",调用时也使用"self.属性名". 类属性则是同一个类的所有实 ...
- python人工智能要学什么_为什么学人工智能首推Python 需要学习哪些知识
原标题:为什么学人工智能首推Python 需要学习哪些知识 为何学人工智能首推Python?需要学习哪些知识?简单地讲,人工智能就是图像处理,数据处理,语言处理等多技术融合,在我们生活中经常可见.比如 ...
最新文章
- 性能测试分享:系统架构
- 上汽集团金忠孝: 人工智能时代的汽车将发生颠覆的变革
- mysql锁相关讲解及其应用——《深究mysql锁》
- web计算机导论读书报告,计算机导论 读书报告.doc
- scala的传值参数和传名参数
- 用python写简单爬虫,用Python写简单的爬虫
- python_day7 绑定方法与非绑定方法
- 美女主播变大妈:在bug翻车现场说测试策略
- echarts年龄饼图_解决echarts饼图显示百分比,和显示内容字体及大小
- 人工智能 企业变革_我们如何利用(人工)情报变革医院的运营管理
- 解决方案架构师的职责
- 使用 Iperf 测试软路由性能
- 前端项目开发流程(附思维导图PC)
- java验证码问题(不区分大小写)升级版,输入不正确则一直输入
- 基于Java实现的绘图软件工具设计
- 前端使用UtoVR Player全景视频播放器实现360°C全景VR视频
- 关于区块链的三个隐喻
- Proteus 运行出错,致命错误解决建议
- python安装cv2包报错解决方法
- Python的selenium自动化项目实例
热门文章
- LeetCode 1120. 子树的最大平均值(DFS自底向上)
- LeetCode 306. 累加数(暴力回溯)
- LeetCode 202. 快乐数(快慢指针)
- LeetCode 437. 路径总和 III(双重递归)
- PHP允许输入负数,php exec在linux中返回值不能为负数
- 使用设备mac好还是随机mac好_省4000我给MBP16搭配了一块2T SSD:希捷 酷鱼飞翼 Fast SSD使用测评...
- BERT重计算:用22.5%的训练时间节省5倍的显存开销(附代码)
- 用微前端的方式搭建类单页应用
- 开源开放 | 细粒度可循证医学文档知识融合表示和推理(CCKS2021)
- 论文浅尝 | Tree-to-sequence 学习知识问答