Python常见面试题(四)
13、简述对象和类的关系(可用比喻的手法)
类是抽象的概念,为所有对象定义了抽象的属性与行为;
对象是类的一个具体。是一个实实在在的东西。比如人类是所有人的一个统称,具体的你、我、他是其中的对象。
类中的@classmethod、@staticmethod和@@property的用法和效果。
@classmethod类方法 是给类用的,类在使用时会将类本身当做参数传给类方法的第一个参数,python为我们内置了函数classmethod来把类中的函数定义成类方法
@staticmethod静态方法 通常情况下,在类中定义的所有函数(注意了,这里说的就是所有,跟self啥的没关系,self也只是一个再普通不过的参数而已)都是对象的绑定方法,对象在调用绑定方法时会自动将自己作为参数传递给方法的第一个参数。除此之外还有两种常见的方法:静态方法和类方法,二者是为类量身定制的,但是实例非要使用,也不会报错。 是一种普通函数,位于类定义的命名空间中,不会对任何实例类型进行操作,python为我们内置了函数staticmethod来把类中的函数定义成静态方法
@property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 ps:面向对象的封装有三种方式: 【public】这种其实就是不封装,是对外公开的 【protected】这种封装方式对外不公开,但对朋友(friend)或者子类(形象的说法是“儿子”,但我不知道为什么大家 不说“女儿”,就像“parent”本来是“父母”的意思,但中文都是叫“父类”)公开 【private】这种封装对谁都不公开
简述__new__和__init__的区别
创建一个新实例时调用__new__,初始化一个实例时用__init__,这是他们最本质的区别。 new方法会返回所构造的对象,init不会。 new函数必须以cls作为第一个参数,而init则以self作为第一个参数

浙公网安备 33010602011771号