python 定义实例方法

定义实例方法
一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用?

虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。

实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的:

class Person(object):

    def __init__(self, name):
        self.__name = name

    def get_name(self):
        return self.__name
get_name(self) 就是一个实例方法,它的第一个参数是self。__init__(self, name)其实也可看做是一个特殊的实例方法。

调用实例方法必须在实例上调用:

p1 = Person(‘Bob‘)
print p1.get_name()  # self不需要显式传入
# => Bob
在实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。

任务
请给 Person 类增加一个私有属性 __score,表示分数,再增加一个实例方法 get_grade(),能根据 __score 的值分别返回 A-优秀, B-及格, C-不及格三档。
时间: 2024-11-26 05:24:25

python 定义实例方法的相关文章

python进阶三(面向对象编程基础)【3-3 python中定义实例方法】

python中定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用? 虽然私有属性无法从外部访问,但是,从类的内部是可以访问的.除了可以定义实例的属性外,还可以定义实例的方法. 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的: 1 class Person(object): 2 3 def __init__(self, name): 4 self.__name = name 5

python中实例方法,类方法,静态方法的区别

Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义和调用的.(PS:实例对象的权限最大.) 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法): 调用:只能由实例对象调用. 类方法 定义:使用装饰器@classmethod.第一个参数必须是当前类对象,该参数名一般约定为“

python中定义实例方法

请给 Person 类增加一个私有属性 __score,表示分数,再增加一个实例方法 get_grade(),能根据 __score 的值分别返回 A-优秀, B-及格, C-不及格三档. class Person(object): def __init__(self, name, score): self.name=name self.__score=score #good=A #fine=B #nonono=C def get_grade(self): if self.__score>=90

Python的实例方法,类方法,静态方法之间的区别及调用关系

如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是一些函数,调用的时候导入模块,通过模块名.函数名()即可调用,完全不需要类,那么你可能会问,那要类还有什么毛用? 类就是用来面向对象编程啦,类可以有自己的属性,类可以创建很多实例,每个实例可以有不同的属性,这也就保存了很多私有的数据,总之都有存在的必要. 再来看上面这张图,在类里面定义的函数就是方法

面向对象编程思想 以及 封装,继承,多态 和 python中实例方法,类方法,静态方法 以及 装饰器

一.什么是面向对象编程? 目前主流的两大软件开发方式有两种,面向过程 和 面向对象. 具体什么意思,看别人写好的博客:https://baijiahao.baidu.com/s?id=1626333751993181194&wfr=spider&for=pc(如何给女朋友解释什么是面向对象编程) 二.动态编程语言中的核心 -- 封装,继承和多态 核心定义:把一组数据结构和处理他们的方法成为 对象,把具有相同行为的对象称为 类.通过 封装 隐藏内部细节,通过 继承 实现类的特化和泛化,通拓

Python定义可变参数与list切片

一:如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数: def fn(*args): print args Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args看成一个 tuple 就好了. 二:list切片 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: xingqi=["微信","支付宝","apple","华为","星期一&qu

Python 定义函数

1        函数 1.1   调用函数 要调用一个函数,需要知道函数的名称和参数. abs绝对值函数 >>> abs(-10) 10 >>> abs(-213) 213 max最大值函数 >>> max(-1,2,5) 5 数据类型转换 >>> int(12.3) 12 >>> int('12.3')   --转换带有小数的整数字符串时,会报错 Traceback (most recent call last)

Python定义类方法

和属性类似,方法也分实例方法和类方法. 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身. 要在class中定义类方法,需要这么写: class Person(object): count = 0 @classmethod def how_many(cls): return cls.count def __init__(self, name): self.name = name Person.count = Person.count + 1 print Person.

python定义多维字典

在python中默认的dict方法定义多维字典较为复杂 并不能直接通过 a=dict() a['b']['c']['d'] = 1 >>> a['b']['c']['d']=1 Traceback (most recent call last):   File "<stdin>", line 1, in <module> KeyError: 'b' 如果想要创建多维字典,需要这样做 >>> a={} >>>