类方法的作用:
实例方法中的self参数的值从哪里来的?
Python中的__init__与__new__的区别:
二者都是python面向对象语言中的函数,__new__很少被用,__init__经常被使用。不同的是__new__在实例创建之前被调用的,用来创建实例然后返回该实例(对象),而__init__在实例创建滞后才使用的,init是用来给对象的实例变量赋值,说明事先存在实例变量,实例变量属于对象,实例变量存在则对象肯定存在
class Farther():
@classmethod
def class_method(cls):
print('this is class method')
def __init__(self,name):
self.name = input('请输入我的名字')
print("这是我的名字",self.name)
class Son(Farther):
def __init__(self):
print('I am init')
def son1(self):
print(self)
def __new__(cls, *args, **kwargs):
print('I am new')
# 返回给了所有实例方法的第一个参数self
return super().__new__(cls)
#如果要改写new函数,在函数的末尾一定要返回类否则会报错
son = Son()
son.son1()