zoukankan      html  css  js  c++  java
  • python中的类

    class Animal:
        # 类属性
        habit = '睡觉'
    
        # 魔术方法(构造方法)
        def __init__(self, name, age, kind):
            # 对象属性
            # 对象中可以访问,类中不能访问
            self.name = name
            self.age = age
            self.kind = kind
    
        '''
        类方法
        1. 定义需要依赖装饰器@classmethod
        2. 类方法中参数不是一个对象,而是类
        3. 类方法中只可以使用类属性,不能使用对象属性
        4. 只能方法中有self出现,则类方法中都不能调用此方法,即类方法中不能使用普通方法
        
        类方法的作用:
        因为只能访问类属性和类方法,所以可以在对象创建之前,如果需要完成一些动作(功能),就可以使用类方法
        '''
    
        @classmethod
        def shout(cls):
            print('所有动物都会叫,所有动物都喜欢{}'.format(cls.habit))
    
        '''
        类中方法之间的调用需要通过self.方法名
        '''
    
        def eat(self, food):
            print('{}是只{},今年{}岁,ta喜欢{},ta正在吃{}'.format(self.name, self.kind, self.age, self.habit, food))
    
        '''
        静态方法:很类似类方法
        1. 依赖装饰器@staticmethod
        2. 静态方法无须传递参数(cls,self)
        3. 也只能方法类的属性和方法,对象是无法访问的
        4. 加载时机和类方法相同
        '''
    
        @staticmethod
        def shout2():
            print('所有动物都会叫,所有动物都喜欢{}'.format(Animal.habit))
    
        '''
        总结:
        类方法     静态方法
        不同:
            1. 装饰器不同
            2. 类方法是有参数的,静态方法没有参数
        相同:
            1. 只能访问类的属性和方法,对象的是无法访问的
            2. 都可以通过类名调用访问
            3. 都可以在创建对象之前使用,因为是不依赖于对象
        
        普通方法 与两者区别:
        不同:
            1. 没有装饰器
            2. 普通方法永远是要依赖对象的,因为每个普通方法都有一个self
            3. 只能创建了对象才可以调用普通方法,否则无法调用
        '''
    
    
    cat1 = Animal('tom', 2, '小猫咪')
    cat1.habit = '吃饭'
    cat1name = cat1.name
    cat1age = cat1.age
    # print('动物共同的爱好是:', Animal.name) # 报错,类无法访问对象属性
    print('动物共同的爱好是:', Animal.habit)
    # 普通方法的调用
    cat1.eat('猫粮')
    # 类方法的调用
    Animal.shout()
    # 静态方法的调用
    Animal.shout2()
    
    
    ------学习贵在分享,贵在记录,贵在总结。
  • 相关阅读:
    无法访问局域网其他计算机
    部署好网站,同局域网中电脑无法访问的问题的解决方案
    python——模块
    python字符串实战
    python——迭代器和生成器
    python——面向对象基础
    python——文件操作
    python——面向对象相关
    python——面向对象进阶
    设计模式——单例模式
  • 原文地址:https://www.cnblogs.com/kevin1220/p/14422606.html
Copyright © 2011-2022 走看看