# -*- coding: utf-8 -*- # @Time : 2019/7/29 10:28 # @Author : Qingr、C # @FileName: learn_0729_初始化函数.py # @Software: PyCharm #类属性即可以通过类访问,也可以通过对象去访问 #对象属性,只能通过对象访问 #对象拥有 类里面所有属性和方法的访问权 class Phone: '这个类是手机类,专门标记手机的属性和功能' #初始化函数__init__() ,作用:属性参数化,属性参数化的做法:通过初始化函数进行传参 #有两中赋值方式,一种是赋值给类,如:Phone.brand_name=brand_name 后面调用的时候通过类去访问 #另外一种是赋值给对象,如:self.brand_name=brand_name 后面调用的时候,通过对象去访问 def __init__(self,brand_name,price,os,color,size): #用init函数传以下5个参数 self.brand_name=brand_name #品牌名 赋值给对象属性方便后面调用。对象属性:只能通过对象去调用 # Phone.price=price #价格 赋值给类 self.price=price self.os=os #操作系统 self.color=color #颜色 self.size=size #尺寸 def call(self,name='毛爷爷'): #位置参数name # #在这里面如何调用属性 print(self.price) #类属性即可以通过类访问,也可以通过对象去访问 print(self.brand_name) #对象属性,只能通过对象访问 print(Phone('苹果','6600','ios','red','6.0').brand_name) print('可以打电话给{}'.format(name)) # return 666 #return的结果会自动打印出来,而作为脚本单独运行时则需要print函数才能显示。 @staticmethod #静态方法 def send_message(name='qiyue'): #默认参数 print('可以发短信给{}'.format(name)) @classmethod #类方法 def watch_vedio(cls,*args): #动态参数 print('可以看{}'.format(args)) def phone_info(self): # 对象方法只能那个通过 类和对象可以直接访问,并且获得他们的值, #但是这里把属性赋值给对象后,就必须要通过对象去访问,所以不能通过类进行访问 print('手机的品牌是{},价格是{},颜色是{},尺寸是{}'.format(self.brand_name,self.price,self.color,self.size)) if __name__ == '__main__': Phone('苹果','6600','ios','red','6.0').call('李现') #Phone()创建对象 如果使用初始化参数,那么在创建对象时,必须要传参 Phone('苹果', '6600', 'ios', 'red', '6.0').phone_info() Phone.send_message('李') #这个函数和属性没关系,所以使用静态函数,在调用的时候不用传参 Phone.watch_vedio('哪吒')