zoukankan      html  css  js  c++  java
  • 面向对象之self classmethod staticmethod

    class Foo:
        """静态字段
           调用方式:类名.静态字段
           在当前类的任意位置可以被调用,
           但是注意了
                如果是静态的方法/类方法,只能是类名.静态字段
                如果是普通方法,可以用self.静态字段, 或者类名.静态字段
        """
        name1 = "gendan"
        age = 100000
        def __init__(self, name):
            """构造方法"""
            print('这是一个构造方法,在对象创建时就自动加载进内存,而且只有一次')
            self.name = name  #声明一个普通字段,调用方式只能是对象.属性来访问,每创建一个对象就会在内存中开一个空间
            self.age = "10"
            print(Foo.age)
    
        def gen_func(self):
            """ 定义普通方法,至少有一个self参数 """
            print(self.name,"普通方法ord_func")
            print('普通方法')
            # self.age = 999
            # print("----",self.age)
        @classmethod  #--->声明紧接它以def开头定义的方法,并且此方法里面后面至少第一个参数是cls
        def class_func(cls):   #调用方式是类名.方法()   Foo.class_func()
            """ 定义类方法,至少有一个cls参数 """
            print ( '类方法')
            # Foo.age="0101 类方式更改静态字段"
            print(Foo.age)
            #类方法里不允许用self方式来访问(不难想象self是一个句柄,只针对对象
        @staticmethod   #--->声明紧接它以def开头定义的方法叫静态方法
        def static_func():
            """ 定义静态方法 ,无默认参数"""
            print('静态方法')
            #静态方法里同样不允许self方式访问(理由同上)
    #创建类对象
    f =Foo("")
    f.name = "diger"
    Foo.age = 99  #允许类方式修改静态字段
    f.gen_func()
    Foo.class_func() #0101 类方式更改静态字段
    print(f.name,"直接外部来调用") #diger 直接外部来调用
    
  • 相关阅读:
    查看自己的笔记本是否支持64位系统
    关闭445端口
    与postgis相关的一些常用的sql
    postgis 赋予postgresql空间数据库的能力
    ThreadLocal
    获取跨域请求的自定义的response headers
    java Bean的映射工具
    Java多线程学习
    (14)Spring Boot定时任务的使用【从零开始学Spring Boot】
    (13)处理静态资源(自定义资源映射)【从零开始学Spring Boot】
  • 原文地址:https://www.cnblogs.com/hongyongshang/p/6713692.html
Copyright © 2011-2022 走看看