• python类和实例化


    实例变量和类变量

    class Student:              # 类的定义体
        classroom = '101'           # 类变量
        address = 'beijing'
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def print_age(self):
            print('%s: %s' % (self.name, self.age))
    re=Student('小明','25')
    print(re.name) # 实例变量name
    print(re.age) # 实例变量age
    
    print(Student.classroom) # 通过类名访问类变量
    print(Student('小明','25').address) # re本身没有classroom实例变量,所以去寻找类变量,它找到了!
    
    输出结果:
    小明
    25
    101
    beijing
    

    实例化方法

    class Student:              # 类的定义体
        classroom = '101'           # 类变量
        address = 'beijing'
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def print_age(self):
            print('%s: %s' % (self.name, self.age))
    re=Student('小明','25').print_age()
    
    输出结果:
    小明: 25
    

    静态方法

    静态方法由类调用,无默认参数。将实例方法参数中的self去掉,然后在方法定义上方加上@staticmethod,就成为静态方法。它属于类,和实例无关。建议只使用类名.静态方法的调用方式。(虽然也可以使用实例名.静态方法的方式调用)

    class Student(object):
        @staticmethod
        def print_age(name,age):
            print('%s: %s' % (name, age))
    re=Student.print_age('小明','25')
    
    输出结果:
    小明: 25
    

    类方法

    类方法由类调用,采用@classmethod装饰,至少传入一个cls(代指类本身,类似self)参数。执行类方法时,自动将调用该方法的类赋值给cls。建议只使用类名.类方法的调用方式。(虽然也可以使用实例名.类方法的方式调用)

    class Student(object):
        @classmethod
        def print_age(cls,name,age):
            cls.name=name
            cls.age=age
            print('%s: %s' % (cls.name, cls.age))
    re=Student.print_age('小明','25')
    
    输出结果:
    小明: 25
    
  • 相关阅读:
    Crypto++库安装、测试
    Unix环境高级编程(一)
    Unix 环境高级编程
    C++加密解密库之选择
    python简单网页服务器示例
    使用resteasy作为dubbox消费者
    oracle驱动包maven下载失败解决
    dubbox下载编译运行demo
    Linux环境变量从用户配置改为系统配置
    @Override注解在Eclipse中编译报错
  • 原文地址:https://www.cnblogs.com/hghua/p/13397483.html
Copyright © 2020-2023  润新知