类就是统称,一类物品的统称。实例就是一个具体存在特指的一个事物。相似的实例可以归到同一类中。
只是完成类的创建,是不会有内容输出的。
类的实例化:
语法: 实例名 = 类名() 例子: laofan = Musician() 含义:通过Musician这个类创建一个实例叫laofan , laofan 这个实例可以调用 Musician这个类中的属性和方法。
- 调用类属性: 实例名.属性名
- 调用类方法:实例名.方法名
类可以创建多个实例。
self 的作用: self会在类的实例化中接收传入的数据,在代码中运行。self的作用就是先在类方法中占一个位置,当实例创建调用类方法的时候,它就会将self.name 也就是类中的name放入方法中,也就会把羽泉放入方法中。这就是类方法中调用类属性需要使用self。同理,如果类中的一个类方法需要调用另一个类方法,依然需要使用self。
江湖秘籍: 类方法中调用类内部属性或者是其他方法时,需要使用self来代表实例。
代码前后对比:
前:
class Musician:
name = ‘羽泉’
def sing(self,person):
print(person+'是音乐人')
singer = Musician()
print(singer.name)
singer.sing(‘羽泉’)
后:
class Musician:
name = ‘羽泉’
def sing(self):
print(self.name+'是音乐人')
singer = Musician()
print(singer.name)
singer.sing()
同理,如果类中的一个类方法需要调用另一个类方法,依然需要使用self。
class Musician:
name = ‘羽泉’
def hello(self):
print('hello,大家好')
def sing(self):
self.hello()
print(self.name+'是音乐人')
singer = Musician()
singer.sing()
补充完善python定义类self用法实例解析
python类方法中的self参数就相当于C++中的this指针。
同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,python会自动绑定类方法的第一个参数指向调用该方法的对象。
如此,python解释器就能知道到底要操作哪个对象的方法了。
程序在调用实例方法和构造方法时,不需要手动为第一个参数传值。
总之,无论是类中的构造方法还是普通的类方法,实际调用他们的是谁,则self就代表谁。
class Person:
def __init__(self):
print("正在执行构造方法")
def study(self):
print(self,"正在学python")
xiaobai = Person()
xiaobai.study()
# mary = Person()
# mary.study()