Python中的self使用注意事项

self的使用要点

1.Python中的self等同于Java中的this,表示当前对象,当前正在操作的对象,而不是当前类

2.某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可


class Person4:
  # def __init__(self):  注意一个类不能有两个初始的构造方法,跟java有区别。
    def __init__(self,name,age): #只是在Java中self不用书写,也不用传参。
        self.name = name
        self.age = age
    def my_print(self): #类中所有def定义的方法,参数都要带self,而且要放在第一位。
        print("这是类内的方法")
        print(self.__class__) #调用当前类方法

def my_p():  #类外的def定义方法(函数),参数不用带self
    print("这是类外的方法")

#----------创建对象,调用方法-------------------------------------------------------------
#p4 = Person4()   #如果不传参数,则会报错,因为默认要给类初始化两个属性值
p4 = Person4("jason",12)
p4.my_print()
#p4.my_p() 这种调用的是错误的,因为my_p()方法是类方法,所以不能用实例.方法名调用
my_p()

#----------执行结果--------------------------------------------------------------------
这是类内的方法
<class '__main__.Person4'>
这是类外的方法

3.self 不是 python 关键字,我们把他换成 abc 也是可以正常执行的,但是约定俗成的都是self,IDE也会自动填充self的 

class Person5:
    def p(self):
        print("self 可以换成别的,但是不要乱换")
    def p1(abc):
        print("换成 abc也可以")
    def __init__(abc,name,age):  #注意这里如果换成abc,那么赋值调用也要对应用abc.name。
        abc.name = name
        abc.age = age
#---创建对象-----------------------------------------------------------------------
p5 = Person5("tom",11)
p5.p()
p5.p1()
print(p5.name,p5.age)

#---结果时-------------------------------------------------------------------------
self 可以换成别的,但是不要乱换
换成 abc也可以
tom 11

猜你喜欢

转载自blog.csdn.net/qq_26442553/article/details/81745924