首页 > 编程语言 >Python基础入门学习笔记 040 类和对象:一些相关的BIF

Python基础入门学习笔记 040 类和对象:一些相关的BIF

时间:2023-08-23 10:56:34浏览次数:47  
标签:size Python self object BIF c1 040 True 属性

一些相关的BIF

issubclass(class, classinfo)  如果第一个参数(class)是第二个参数(classinfo)的一个子类,则返回True,否则返回False

 1 >>> class A:
 2     pass
 3 
 4 >>> class B(A):
 5     pass
 6 
 7 >>> issubclass(B,A)
 8 True
 9 >>> issubclass(B,B)   #一个类被认为是其自身的子类
10 True
11 >>> issubclass(B,object)      # object是所有类的基类
12 True
13 >>> class C:
14     pass
15 
16 >>> issubclass(B,C)
17 False

isinstance(objectclassinfo)  如果第一个参数(object)是第二个参数(classinfo)的实例对象,则返回True,否则返回False

 1 >>> issubclass(B,C)       注:第一个参数如果不是对象,则永远返回False
 2 False
 3 >>> b1 = B()
 4 >>> isinstance(b1,B)
 5 True
 6 >>> isinstance(b1,C)
 7 False
 8 >>> isinstance(b1,A)
 9 True
10 >>> isinstance(b1,(A,B,C))
11 True

hasattr(object, name)  用来测试一个对象里是否有指定的属性,第一个参数(object)是对象,第二个参数(name)是属性名(属性的字符串名字)

1 >>> class C:
2     def __init__(self,x=0):
3         self.x = x
4 
5         
6 >>> c1 = C()
7 >>> hasattr(c1,'x')    #注意,属性名要用引号括起来
8 True

getattr(object, name[, default])  返回对象指定的属性值,如果指定的属性不存在,则返回default(可选参数);若没有设置default参数,则抛出异常

1 >>> getattr(c1,'x')
2 0
3 >>> getattr(c1,'y')
4 Traceback (most recent call last):
5   File "<pyshell#25>", line 1, in <module>
6     getattr(c1,'y')
7 AttributeError: 'C' object has no attribute 'y'

setattr(object, name, value)  可以设置对象中指定属性的值,如果指定的属性不存在,则会新建属性并赋值

1 >>> setattr(c1,'y','FishC')
2 >>> getattr(c1,'y')
3 'FishC'

delattr(object, name)  用于删除对象中指定的属性,如果属性不存在,抛出异常。

1 >>> delattr(c1,'y')
2 >>> delattr(c1,'Z')
3 Traceback (most recent call last):
4   File "<pyshell#30>", line 1, in <module>
5     delattr(c1,'Z')
6 AttributeError: Z

property(fget=Nonefset=None, fdel=None, doc=None)  用来通过属性设置属性,第一个参数是获取属性的方法名,第二个参数是设置属性的方法名,第三个参数是删除属性的方法名

 1 >>> class C:
 2     def __init__(self,size =10):
 3         self.size = size
 4     def getSize(self):
 5         return self.size
 6     def setSize(self,value):
 7         self.size = value
 8     def delSize(self):
 9         del self.size
10     x=property(getSize,setSize,delSize)
11 
12     
13 
14 >>> c = C()
15 >>> c.x         #调用getSize()
16 10
17 >>> c.x = 12      #调用SetSize()
18 >>> c.x
19 12
20 >>> c.size
21 12
22 >>> del c.x      #调用DelSize()
23 >>> c.size
24 Traceback (most recent call last):
25   File "<pyshell#53>", line 1, in <module>
26     c.size
27 AttributeError: 'C' object has no attribute 'size'

 

标签:size,Python,self,object,BIF,c1,040,True,属性
From: https://www.cnblogs.com/ybqjymy/p/17650598.html

相关文章

  • Python基础入门学习笔记 041 魔法方法:构造和析构
     __init__(self[,...]) 方法是类在实例化成对象的时候首先会调用的一个方法1>>>classRectangle:2def__init__(self,x,y):3self.x=x4self.y=y5defgetPeri(self):6return(self.x+self.y)*27defgetArea......
  • Python基础入门学习笔记 038 类和对象:继承
    继承         子类               父类class DerivedClassName(BaseClassName):……实例:一个子类可以继承它的父类的所有属性和方法1>>>classParent:2defhello(self):3print('正在调用父类的方法......
  • Python基础入门学习笔记 036 类和对象:给大家介绍对象
    给大家介绍对象把乱七八糟的数据扔进列表里,称数据层面的封装把常用的代码段打包成一个函数,称语句层面的封装把数据和代码都封装在一起,称对象层面的封装对象 = 属性 + 方法对象可以从静态(属性)与动态(方法)两个特征来描述 OO(面向对象)的特征继承class Turtle:#Pytho......
  • Python基础入门学习笔记 037 类和对象:面向对象编程
    self是什么?Python的self其实就相当于C++的this指针。由同一个类可以生产无数对象,当一个对象的方法被调用的时候,对象会将自身的引用作为第一个参数传给该方法,那么python就知道需要操作哪个对象的方法了。1>>>classBall:2defsetName(self,name):3self......
  • Python基础入门学习笔记 032 异常处理:你不可能总是对的
    实例1:1file_name=input('请输入需要打开的文件名:')2file=open(file_name)3print('文件的内容是:')4foreach_lineinfile:5print(each_line)6file.close() Python标准异常总结 以下是Python内置异常类的层次结构:......
  • Python基础入门学习笔记 033 异常处理:你不可能总是对的2
    try-except语句try:  检测范围exceptException[asreason]:  出现异常(Exception)后的处理代码实例1:1try:2f=open('TE.txt')3print(f.read())4f.close()5exceptOSError:6print('文件打开过程中出错了!!!')实例2:1try:2f=open(......
  • Python基础入门学习笔记 034 丰富的else语句及简洁的with语句
    丰富的else语句•要么怎样,要么不怎样if条件:  条件为真执行else:  条件为假执行    •干完了能怎样,干不完就别想怎样实例1:1defshowMaxFactor(num):2count=num//2#//为整除,判断是素数,只需依次判断当前数num除以1到(num//2)都不能整除即可3......
  • Python基础入门学习笔记 027 集合:在我的世界里,你就是唯一
    字典的表亲--集合(在python3中,如果用大括号括起一堆数字但没有体现映射关系,那么就会认为这堆玩意儿就是个集合)1>>>num1={}2>>>type(num1)3<class'dict'>4>>>num2={1,3,4}5>>>type(num2)6<class'set'>集合中的元素都是唯一的(集合会自动帮我们把......
  • Python基础入门学习笔记 028 文件:因为懂你,所以永恒
    大多数u程序都是:首先接收输入数据,然后按照要求进行处理,最后输出数据 虽然当前数据放在内存中存取的速度要比硬盘中快,但一旦断电则会丢失,所以尽量ctrl+s保持到硬盘中 什么是文件打开文件1open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,......
  • Python基础入门学习笔记 029 文件:一个任务
    •任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起来:–小甲鱼的对话单独保存为boy_*.txt的文件(去掉“小甲鱼:”)–小客服的对话单独保存为girl_*.txt的文件(去掉“小客服:”)–文件中总共有三段对话,分别保存为boy_1.txt,girl_1.txt,boy_2.txt,girl_2.txt,boy_3.txt,......