# -*- coding:utf-8 -*-
# 对象实例函数
class People(object):
# 如果需要在创建对象的时候,给对象属性赋值,就可以在初始化函数中传递参数,给属性赋值,如果不需要初始化对象属性值,就不用写了
def __init__(self):
# 初始化函数可以不用传递参数值
# 可以直接给属性赋一个默认值
self.name = '张三'
self.age = 20
# 凡是在类中定义的函数,如果定义函数,没有添加装饰器,这个函数默认为对象函数,只能由对象去调用执行;类也可以执行该函数,但是在调用时必须将一个People类的对象作为参数进行传递,也就是说无论是谁调用,都必须要有个对象
def eat(self):
# self参数 不需要手动传递,运行python程序的时候,解释器会自动将调用函数的对象作为self参数进行传递
# self指的是:对象A调用这个函数,self就是对象A,对象B调用这个函数,self就是对象B
# 输出self
print ('self: %s'%self)
# 带有参数的对象函数
def look_movie(self,name,price=28,*args,**kwargs):
print (name,price,args,kwargs)
p1 = People()
# 对象调用函数
p1.eat()
print ('p1: %s'%p1)
print ('-----------------------')
p2 =People()
p2.eat()
print('p2: %s'%p2)
# 如果使用类调用对象函数,必须将一个对象作为参数传入函数中
People.eat(p1)
# p1调用多参数函数
p1.look_movie('前任3',39,1,50,drink='coco',food='boom')