zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    BZOJ5057 : 区间k小值5
    Urozero Autumn 2016. UKIEPC 2016
    BZOJ2808 : 那些年我们画格子
    BZOJ4970 : [ioi2004]empodia 障碍段
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    BZOJ4316 : 小C的独立集
    网络流(3)——找到最小st-剪切
    网络流(2)——用Ford-Fullkerson算法寻找最大流
    网络流(1)——网络、流网络和网络流
    退而求其次(4)——椭圆中的最大矩形
  • 原文地址:https://www.cnblogs.com/hghua/p/13397483.html
Copyright © 2011-2022 走看看