标签:name 查看属性 print val key python get 实例 ict
检查obj是否是类cls的对象
class Foo(object):
pass
obj = Foo()
print(isinstance(obj, Foo))
检查sub类是否是super类的派生类
class Foo(object):
pass
class Bar(Foo):
pass
print(issubclass(Bar, Foo))
把对象模拟成像字典对象操作一样的类型
class Foo:
def __init__(self, name):
self.name = name
def __getitem__(self, item): # item = "name" 通过字符串访问属性
# print("getitem...")
# print(item)
return self.__dict__.get(item)
obj = Foo("alex")
# print(obj.__dict__)
# obj.属性
obj["name"] #按照这种形式取值
class Foo:
def __init__(self, name):
self.name = name
def __setitem__(self, key, value): # 设置值
# print("setitem...")
# print(key, value)
self.__dict__[key]=value
obj = Foo("alex")
# print(obj.__dict__)
# obj.sex = "male" # 以前设值(赋值)
obj["sex"] = "male"
print(obj.__dict__)
print(obj.sex)
class Foo:
def __init__(self, name):
self.name = name
def __delitem__(self, key): # 删除属性
# print("delitem..")
# print(key)
# self.__dict__.pop(key)
del self.__dict__[key]
obj = Foo("alex")
# print(obj.__dict__)
print(obj.__dict__)
# del obj.name
del obj["name"]
print(obj.__dict__)
d = {"name": "egon"} # 本质上是dict类的实例
# d = dict({"name": "egon"})
# print(isinstance(d, dict))
print(d) #{‘name‘: ‘egon‘}
class Foo:
pass
obj = Foo()
print(obj) #<__main__.Foo object at 0x000001E4EF704B00>
本质是d和obj都是类的实例,但是打印的结果不一样
在打印时触发,把返回值以字符串的形式,作为打印的内容
# __str__方法(一定要返回字符串类型)(打印对象的时候会触发该方法的执行)
class People:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self): # 在打印时触发,把返回值以字符串的形式,作为打印的内容
# print("----->str")
return "<name:%s,age:%s>" % (self.name, self.age)
obj = People("alex", 20)
print(obj) # print(obj.__str__())
在对象删除的时候会自动先触发该功能
# __del__ 回收资源(绑定给对象的) 在对象删除的时候会自动先触发该功能
# f = open("a.text") # 在应用程序中拿到的是单纯的f,在操作系统中实际上是打开了一个文件
# f.read() # 应用程序对操作系统的调用
# f.close() # 回收操作系统资源 f 还是存在
class Open:
def __init__(self,filename):
print("open file.....")
self.filename = filename
def __del__(self):
print("回收操作系统资源:self.close()")
f = Open("start.py")
del f # f.__del__() 手动
print("-------main-----") # f.__del__() 自动 程序结束python会自动回收掉f(del f),遗留下了操作系统资源。__del__回收操作系统资源
标签:name 查看属性 print val key python get 实例 ict
原文地址:https://www.cnblogs.com/fantsaymwq/p/10017700.html