今天学类这一块的时候学到了魔术方法,网课老师在定义Student类的时候用魔术方法定义了该类对象一些内置方法比如len(),str()还有一些运算符的功能,然后功能就和我记忆中的完全不一样了
我又突然想到有句话叫Python中一切皆对象,并且每一个数据对象都有一个类型,而每一个类的实例对象的类型都是这个类的类名
我猜测,这是不是意味着其实Python所有的数据都是对应类(数据类型)的一个实例?
就比如a=2,2这个整型数据其实是int这个类的一个实例?
而我们平时调用的各种内置函数,比如str(2),将2转化为字符型数据,其实是因为Python在int类里面已经重写过__str__()这个魔术方法了,所以我们可以直接对2这个数据使用str()函数,因为str()这个函数已经被它对应的魔术方法给实现了
那如果我们能将int类中的__str__()这个魔术方法进行重写,那是不是就能改变内置函数str()对整形数据的作用?
我又突然想到有句话叫Python中一切皆对象,并且每一个数据对象都有一个类型,而每一个类的实例对象的类型都是这个类的类名
我猜测,这是不是意味着其实Python所有的数据都是对应类(数据类型)的一个实例?
就比如a=2,2这个整型数据其实是int这个类的一个实例?
而我们平时调用的各种内置函数,比如str(2),将2转化为字符型数据,其实是因为Python在int类里面已经重写过__str__()这个魔术方法了,所以我们可以直接对2这个数据使用str()函数,因为str()这个函数已经被它对应的魔术方法给实现了
那如果我们能将int类中的__str__()这个魔术方法进行重写,那是不是就能改变内置函数str()对整形数据的作用?