[email protected]&@classmethod&property的理解

#!/usr/bin/evn python
#_*_coding:utf8_*_

class myClass(object):
    age = 30
    def __init__(self,name):
        self.name = name
    def sayhi1(self):#只可实例中调用
        print("sayhi1...name:{}.age:{}".format(self.name,self.age))
    @staticmethod  #静态方法不可访问构造方法中的变量,可在实例中调用,也可类中调用
    def sayhi2(age=10):#不可以传self,即不可访问self.name,self.age
        print("[email protected]{},{}".format(myClass.age,age))
    @classmethod #类方法不可以访问__init__构造方法中的变量,可在实例中调用,也可以类中调用
    def sayhi3(self,test=‘实例中调用‘):#可传self,只能访问类变量,不可访问构造方法中的变量
        print("[email protected]:{},{}".format(self.age,test))
    @property #属性方法:必须要返回值,只可当属性使用,不可调用。把一个方法变成静态属性给予访问,实例中可访问
    def sayhi4(self,name=‘实例中..‘):#可访问类变量及构造方法中的变量
        print("[email protected]:{},age{},{}".format(self.name,self.age,name))
        return self.name,self.age
    @property
    def sayhi5(self):
        print("[email protected]{}".format(self.age))
        return self.age

if __name__ == ‘__main__‘:
    m = myClass(‘dodo‘)
    m.sayhi1()
    #myClass.sayhi1()
    print("[email protected]调用-------")
    m.sayhi2(‘实例中调用...‘)
    m.sayhi2()
    myClass.sayhi2(‘类中外部调用...‘)
    myClass.sayhi2()
    print("[email protected]调用--------")
    m.sayhi3()
    myClass.sayhi3(‘类中调用‘)
    print("[email protected]调用-----------")
    print(m.sayhi4)
    print(myClass.sayhi4)
    print(myClass.sayhi5)
    print(m.sayhi5)
时间: 2024-09-29 10:33:29

[email protected]&@classmethod&property的理解的相关文章

[email protected]_LabVIEW工厂模式理解

前言 折腾了一天,基本上搞清楚了简单工厂.工厂模式 理解 无论是简单工厂还是工厂模式,都有一个特点,即工厂加工的方式是不变的,产品的类型可以不断扩展:如果加工方式也会变化,修改工厂模式的加工方式会导致工厂原有的一些内容发生改变,此时要使用策略模式,利用组合实现更多的可配置: 简单工厂模式 简单工厂模式UML 理解 简单工厂模式实际上是将初始化实例的内容放在了一个工厂类里面,通过一个参数,实现类的实例化,适用于只知道传入了工厂类的参数,对于始何创建对象(逻辑)不关心时候.由于将初始化实例放在了一个

[email protected] 和 @property

1.首先讲@property, 这是iOS6以后出来的关键词. 用它声明一个属性之后, 编译器会自动给你生成setter和getter方法. @property (nonatomic, retain) NSString *name; setter方法如下: -(void)setName:(NSString*)_name{ //首先判断是否与旧对象一致,如果不一致进行赋值. //因为如果是一个对象的话,进行if内的代码会造成一个极端的情况:当此name的retain为1时,使此次的set操作让实例

Python学习(十三)[email protected]和property函数

@property @property装饰器可以把一个方法变成属性调用. 举一个例子,对学生成绩进行设置和查询.通过set_score来设置成绩,get_score来获取成绩.这样的不方便之处就是不像直接用属性那么方便. class Student(object): def get_score(self): return self._score def set_score(self, value): if not isinstance(value, int): raise ValueError(

[email protected]、self及类的本质

让代码书写更加简便 --1-- 设置器和访问器 1.1 setter 1.2 getter --2-- 类的本质 2.1 类类型的对象 2.2 类的本质 2.3 如何获取类对象 2.4 类对象的使用 2.5 类对象的存储 --3-- SEL类型 3.1 SEL --4-- @property关键字 4.1 基本概念 4.2 @property用法 4.3 @property使用注意事项 --5-- @synthesize关键字 5.1 @synthesize用法 5.2 @synthesize使

springboot情操陶冶[email protected]和@AutoConfigureAfter注解解析

承接前文springboot情操陶冶[email protected]注解解析,本文将在前文的基础上阐述@AutoConfigureAfter和@Conditional注解的作用与解析 [email protected] 根据单词来理解,其就是条件的意思.在分析之前我们可以看下其内部源码 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @i

springMVC @[email protected]@[email protected]@Controller的区别和理解

作用: @Component------------------------泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注.(Component-------成分; 组分; 零件) @Resource------------------------(资源) @Autowired-----------------------(自动绑定) @Repository-----------------------于标注数据访问组件,即DAO组件(repository-------仓库; 贮藏

springboot情操陶冶[email protected]注解解析

承接前文springboot情操陶冶[email protected]注解解析,本文将在前文的基础上对@SpringBootApplication注解作下简单的分析 @SpringBootApplication 该注解是springboot最集中的一个注解,也是应用最广泛的注解.官方也多用此注解以启动spring服务,我们看下其中的源码 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inher

【[email protected]基础篇 ~】# 磁盘与文件系统

之前三篇文章我们简单介绍了Linux系统的用户管理,文件操作等,都是比较浅显的基本操作.这节我们要深入一下了,从文件系统我们要看到磁盘系统.从磁盘系统我们要看到操作系统的整体架构.废话不多少让我们开始学习吧! 磁盘与文件系统 1.磁盘系统 1.1 磁盘结构 如图所示,磁盘由扇区和柱面组成,分区的最小单位是柱面(柱是有厚度的,本图是截面图),磁盘读取的最小单位是扇区.第一扇区的MBR(446bytes)分区表可以最大包含四个分区(64bytes)的信息,即从开始柱面到结束柱面4组数据,每组16个字

error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 ___tmainCR...(转)

一,问题描述 MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 ___tmainCRTStartup 中被引用  Debug\jk.exe : fatal error LNK1120: 1 个无法解析的外部命令 error LNK2001: unresolved external symbol [email protected] debug/main.exe:fatal error LNK 1