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
    
  • 相关阅读:
    silverlight 调用默认打印机
    拿来主意
    关于js智能提示的封装(修订版)
    silverlight 获取文本框焦点
    silverlight Timer
    winform 中写app.config文件时 调试情况下没有改变的原因
    关于asp:GridView和dx:ASPxGridView固定表头的jquery代码封装
    Microsoft Visual Studio 2010的前世今生
    游戏开发之我见
    JS中数组去重
  • 原文地址:https://www.cnblogs.com/hghua/p/13397483.html
Copyright © 2011-2022 走看看