python学习笔记(24)-类与对象

#类与对象
#python类的语法 关键字 class
#class 类名   类名的规范是:数字字母下划线组成,不能以数字开头 首字母大写  驼峰命名
    #类属性 放在类里面的变量值
    #类方法 放在类里面的函数
    #类方法里有:实例方法、类方法(classmethod)
class BoyFriend:
    height = 175
    weight = 140
    def __init__(self,name,age):  #初始化函数,初始化函数可以有默认值,一般不穿动态参数和关键字参数
        self.name=name
        self.age=age
        pass
    def cooking(self):  #self 传递的是实例本身
        print("会做饭")
    def earn(self):
        print("会赚钱")
    @classmethod     #类方法
    def swimming(cls):
        print("我是个类方法!")

    @staticmethod  #静态方法
    def sing():
        print("会唱歌,我是个静态方法")

#实例、对象  具体的一个例子 类名() 怎么去创建一个实例??类名+()
bf = BoyFriend()
print(bf)
#实例具有类里面的所有属性和方法的使用权限
#调用属性 实例.属性值
#调用方法 实例.方法名()
#实例方法,意味着 这个方法只能实例来调用
t = BoyFriend() #实例 隐式的传递,创建实例的调用
t.cooking()
BoyFriend.earn(t) #显示的传递

#类方法,创不创建实例都可以调用类方法  @classmethod
BoyFriend.swimming() #方法一:直接类调用
t = BoyFriend() #方法二 创建实例调用
t.swimming()

#静态方法 @staticmethod  参数非必传,普通函数
#实例和类都可以调用
BoyFriend.sing()
t = BoyFriend()
t.sing()

#初始化函数,什么时候用呢?想用就用,如果某个属性值是多个函数公用的,就可以用初始化函数。
#没有返回值 return
t1 = BoyFriend('wuzm','13')
t2 = BoyFriend('lyn','23')

#1、实例方法self   类方法cls  静态方法(普通方法) 实例和类名都可以直接调用
#2、不同点:静态方法和类方法不可以调用类里面的属性值,如果你要参数,请自己传递参数
#3、什么时候去定义为静态和类方法,当你的某个函数和其他的类函数、类属性没有任何关系的时候,就可以定义为静态方法和类方法。
原文地址:https://www.cnblogs.com/wuzm/p/11876943.html