#类的基本知识
#类对象的优点:多态,封装,继承#多态
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-类的基本知识相关推荐

  1. python类和对象_Python类和对象

    python类和对象 Python is an object-oriented programming language. Python Classes and Objects are the cor ...

  2. python类和oop基础知识

    文章目录 oop:面向对象程序设计 python类的特点: oop基本概念: 1.属性继承搜索: 2.类和实例: 3.类方法调用 4.编写类树 5.代码重用 oop:面向对象程序设计 1.类:一些函数 ...

  3. python中、不论类的名字是什么、构造方法的名字都是( )_2020年《python程序设计》基础知识及程序设计598题GA[含参考答案]...

    2020年<python程序设计>基础知识及程序设计 598题[含参考答案] 一.填空题 1.表达式 len('abcdefg'.ljust(3)) 的值为_________.(7) 2. ...

  4. Python培训入门基础知识学什么?

    Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...

  5. 谈谈Python那些不为人知的冷知识(二)

    本文转载自Python的编程时光(ID:Python-Time) 小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来. 从上一篇的分享来看,仍然有不少 Pythoner 对这些冷知识存在盲 ...

  6. python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解

    我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器. 代码如下: class Test(): xx = False def __init__(self): pa ...

  7. python常用知识点总结-python 类知识点总结

    python 类知识点总结 面向对象思想: 1.设计的时候,一定要明确应用场景 2.由对象分析定义类的时候,找不到共同特征和技能不用强求 1.简述类.对象.实例化.实例这些名词的含义: 类:从一组对象 ...

  8. 第八章 Python类中常用的特殊变量和方法

    上章花了近三十章节介绍类的知识,本章估计内容也比较多,讲完这些,其实还有更多.为什么这么多类有关的知识呢,这是因为在Python里面一切皆对象,就连整型.浮点数.字符串这些比较常规的类型都是作为类来实 ...

  9. Python类属性和实例属性分别是什么?

    实例属性即同一个类的不同实例,其值是互不关联的,也不会互相影响的,定义时使用"self.属性名",调用时也使用"self.属性名". 类属性则是同一个类的所有实 ...

  10. python人工智能要学什么_为什么学人工智能首推Python 需要学习哪些知识

    原标题:为什么学人工智能首推Python 需要学习哪些知识 为何学人工智能首推Python?需要学习哪些知识?简单地讲,人工智能就是图像处理,数据处理,语言处理等多技术融合,在我们生活中经常可见.比如 ...

最新文章

  1. 性能测试分享:系统架构
  2. 上汽集团金忠孝: 人工智能时代的汽车将发生颠覆的变革
  3. mysql锁相关讲解及其应用——《深究mysql锁》
  4. web计算机导论读书报告,计算机导论 读书报告.doc
  5. scala的传值参数和传名参数
  6. 用python写简单爬虫,用Python写简单的爬虫
  7. python_day7 绑定方法与非绑定方法
  8. 美女主播变大妈:在bug翻车现场说测试策略
  9. echarts年龄饼图_解决echarts饼图显示百分比,和显示内容字体及大小
  10. 人工智能 企业变革_我们如何利用(人工)情报变革医院的运营管理
  11. 解决方案架构师的职责
  12. 使用 Iperf 测试软路由性能
  13. 前端项目开发流程(附思维导图PC)
  14. java验证码问题(不区分大小写)升级版,输入不正确则一直输入
  15. 基于Java实现的绘图软件工具设计
  16. 前端使用UtoVR Player全景视频播放器实现360°C全景VR视频
  17. 关于区块链的三个隐喻
  18. Proteus 运行出错,致命错误解决建议
  19. python安装cv2包报错解决方法
  20. Python的selenium自动化项目实例

热门文章

  1. LeetCode 1120. 子树的最大平均值(DFS自底向上)
  2. LeetCode 306. 累加数(暴力回溯)
  3. LeetCode 202. 快乐数(快慢指针)
  4. LeetCode 437. 路径总和 III(双重递归)
  5. PHP允许输入负数,php exec在linux中返回值不能为负数
  6. 使用设备mac好还是随机mac好_省4000我给MBP16搭配了一块2T SSD:希捷 酷鱼飞翼 Fast SSD使用测评...
  7. BERT重计算:用22.5%的训练时间节省5倍的显存开销(附代码)
  8. 用微前端的方式搭建类单页应用
  9. 开源开放 | 细粒度可循证医学文档知识融合表示和推理(CCKS2021)
  10. 论文浅尝 | Tree-to-sequence 学习知识问答