面向对象-内置方法

class Foo:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def __getitem__(self,item):
        print(‘getitem‘)
        print(item)
        return self.__dict__.get(item)

    def __setitem__(self, key, value):
        print(‘setitem‘)
        print(key,value)
        self.__dict__[key]=value

    def __delitem__(self, key):
        print(‘delitem‘)
        print(key)
        # self.__dict__.pop(key)
        del self.__dict__[key]

obj=Foo(‘egon‘,18)
#查看属性:
obj[‘name‘]  # 相当于obj.name
obj[‘age‘]

#设置属性
obj[‘sex‘]=‘male‘  #相当于 obj.sex=‘male‘

print(obj.__dict__)
print(obj.sex)  # 为增加的 ‘male

#删除属性
del obj.name
del obj[‘age‘]
print(obj.__dict__)

# str 用法
d=dict({‘name‘:‘egon‘})
print(isinstance(d,dict))
print(d)
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(‘egon‘,18)
print(obj)

#__del__
f=open(‘settings.py‘)  # 操作系统打开了
f.read()
f.close() #回收操作系统的资源
print(f)
class Open:
    def __init__(self,filename):
        print(‘open file‘)
        self.filename=filename

    def __del__(self):
        print(‘回收操作系统资源:self.close()‘)

f=Open(‘settings.py‘)
# del f # f.__del__()
print(‘----main----‘)  # del f # f.__del__()

原文地址:https://www.cnblogs.com/hexiaorui123/p/10201527.html

时间: 2024-07-29 23:49:12

面向对象-内置方法的相关文章

九.python面向对象(内置方法)

一. 内置方法 1.__getattr__ 原文地址:https://www.cnblogs.com/Sup-to/p/10887811.html

面向对象内置方法

1.isinstance(obj,cls)和issubclass(sub,super) 判断obj是否是cls类的对象 例: li=[1,[2,[3,[4]]]] def run_list(li): for i in li: if isinstance(i,list): run_list(i) else: print(i) run_list(li) 判断sub是否是super的派生类 2. 反射 定义: 通过字符串的形式操作对象的相关属性 相关方法 (1)hasattr print(hasatt

面向对象的进阶---反射--一些内置方法

反射 反射和一些类的内置方法 1 isinstance ---- issubclass type()--判断 是不是 ininstance(object,cls) 判断 是不是类的对象 如果这个类有父类 这个对象也是这个父类的对象 issubclaaa(cls,cls) 判断一个类是不是另一个类的子类 ============================= 反射 ================================= 把一个字符串 类型的变量 变成一个 真实存在这个程序中的变量名

Python学习【第14篇】:面向对象之反射以及内置方法

面向对象之反射及内置方法 一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态方法不需要参数 绑定方法:分为普通方法和类方法 普通方法:默认有一个self对象传进来,并且只能被

面向对象之反射及内置方法

一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态方法不需要参数 绑定方法:分为普通方法和类方法 普通方法:默认有一个self对象传进来,并且只能被对象调用-------绑定

Python之面向对象:类的内置方法

1.def __add__(self,other): c1+c2 两个实例的加法操作就是执行__add__()方法 2.__str__(self): print一个实例的时候,执行的是__str__()这个内置方法 eg: class Vector(object): def __init__(self,a,b): self.a = a self.b = b def __str__(self): return 'Vector(%d,%d)'%(self.a,self.b) def __add__(

python全栈开发【第十七篇】面向对象反射和内置方法

一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态方法不需要参数 绑定方法:分为普通方法和类方法 普通方法:默认有一个self对象传进来,并且只能被对象调用-------绑定

面向对象:反射、内置方法

反射:通过字符串映射到对象或者类的属性 反射的方法: class People: country = "China" def __init__(self,name,age): self.name = name self.age = age def talk(self): print("%s is talking" % self.name) obj = People("neo",22) """ 判断是否拥有某个属性:

铁乐学python_day24_面向对象进阶1_内置方法

题外话1: 学习方法[wwwh] what where why how 是什么,用在哪里,为什么,怎么用 学习到一个新知识点的时候,多问问上面的四个问题,并了解和实践透彻. 什么是反射? 先不说枯燥的概念,你可以自己总结出来,对于python中的反射,什么时候会用到? 需要使用字符串数据类型的变量名来使用变量的时候用到反射. (通过字符串的形式操作对象相关的属性和方法.) 关键词:字符串 使用到字符串的场景多在: 1)文件中存储的是字符串, 2)网络上能传递的也最接近字符串, 3)用户输入的(用