类的成员

一、字段

- 字段可以分为'普通字段'和'静态字段'两种

- 普通字段(保存在对象中,执行时只能通过对象来进行访问)

- 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空间),执行时可以通过对象来访问,也可以通过类来访问)

class Province:
country = '中国' # 静态字段 def __init__(self, name):
self.name = name # 普通字段 def show(self): # 方法
print(self.name) Beijing = Province('北京')
Shanghai= Province('上海')
print(Beijing.name, Province.country) # 通过类来访问静态对象country
print(Shanghai.name,Shanghai.country) # 通过对象来访问静态对象country
===>北京 中国
===>上海 中国

二、方法

- 方法可以分为三种'普通方法'、'静态方法'以及'类方法'三种

- 普通方法,保存在类中,通过对象来调用,self参数为对象

- 静态方法,保存在类中,通过类来直接调用

静态方法的特殊之处:1、self 参数不再是必须的

            2、在方法前加上装饰器 @staticmethod

            3、也可以传入对应的参数

- 类方法,    保存在类中,通过类来直接调用,cls参数为类

类方法的特殊之处:    1、需要参数,一般使用为 cls

             2、在方法前加上装饰器 @classmethod

应用场景:

- 当对象中需要保存值,调用方法时需要使用对象中的值,此时使用普通方法更为合适

- 当不需要任何对象中的值时,使用静态方法或类方法比较合适

class Method:
# 普通方法
def nml(self):
print('普通方法') # 静态方法
@staticmethod
def stm():
print('静态方法') # 类方法
@classmethod
def cls(cls):
# 一般在类方法中的参数为cls ,cls 是类名
print('类方法') Method.stm()
Method.cls()
===>静态方法
===>类方法

三、属性(特性)

属性,保存在类中

class Info:
@property
def med1(self):
print('med1') def med2(self):
print('med2')
def med3(self,v):
print(v)
def med4(self):
print('med4') per = property(fget=med2,fset=med3,fdel=med4) obj = Info()
obj.med1
ret = obj.per # fget的访问方式
obj.per = 'med3' # fset的访问方式
del obj.per # fdel的访问方式
===>med1
===>med2
===>med3
===>med4

Python学习 :面向对象 -- 类的成员的更多相关文章

  1. Python学习:类和实例

    Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...

  2. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...

  3. Java面向对象——类的成员

    Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean ...

  4. python面向对象(类的成员及类方法)

    类的普通成员 字段 方法 属性 类的高级成员 静态字段 静态方法 属性方法   类方法 类成员修饰符 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中, ...

  5. python基础学习笔记——类的成员

    一. 细分类的组成成员 之前咱们讲过类大致分两块区域,如下图所示: 每个区域详细划分又可以分为: class A: company_name = '老男孩教育' # 静态变量(静态字段) __ipho ...

  6. Python面向对象 | 类的成员

    一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分. 每个区域详细划分又可以分为: class A: company = '阿里巴巴' # 静态变量(静态字段) __tel ...

  7. Python面向对象(类的成员之属性)

    day24 类的成员之属性 class Foo(): def bar(self): print("bar") @property def per(self): ') return ...

  8. Python面向对象(类的成员之方法)

    day24 类的成员之方法 - 普通方法,保存在类中,由对象来调用,self > 对象 - 静态方法,保存在类中,由类直接调用 - 类方法,保存在类中,由类直接调用,cls > 当前类 c ...

  9. Python面向对象(类的成员之字段)

    day24 类的成员之字段 # 字段         - 普通字段,保存在对象中,执行只能通过对象访问         - 静态字段,保存在类中,  执行 可以通过对象访问 也可以通过类访问 clas ...

随机推荐

  1. NAT原理简介、各种 ADSL Modem 及路由器的端口映射方法

    NAT原理简介 NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force ...

  2. 海量数据处理面试题(2) 将用户的query按出现频度排序

    问题描述: 有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复.要求你按照query的频度排序. 分析:一般海量数据采用分治法时,都要用到哈希,将相 ...

  3. C/S架构的性能测试

    很多人关心LR在C/S架构上如何实施性能测试,我想根本原因在于两个方面,一是很多时候脚本无法录制,即LR无法成功调用被测的应用程序,二是测试脚本即使录制下来,可读性不强,往往不能运行通过,调试时无从下 ...

  4. Python中readline()函数 去除换行符

    从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n. 方法是使用strip()函数. 例子如下: f = open ...

  5. Linux中如何配置sudo用户

    Linux中的sudo文件在/etc/sudoers,但不建议直接修改此文件: 可以在/etc/sudoers.d文件夹中新建文件,文件名随意,在文件中添加内容如下: 用户名 ALL=(ALL) AL ...

  6. 关于使用 CALayer 中 mask 的一些技巧

    CALayer 拥有 mask 属性,Apple 的官方解释如下: An optional layer whose alpha channel is used to mask the layer’s ...

  7. CADisplayLink分析

    1.固定频率定时器: 2.UI帧率性能检测: 3.cpu动画控制器:

  8. BZOJ1334:[Baltic2008]Elect(背包DP)

    Description N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党 ...

  9. 坑之OJ-玄学、不可抗力

    自家学校OJ网站上的题目,很玄学,不知道哪里出的问题. 这个OJ链接的题目没有问题的. https://www.luogu.org/problemnew/show/P1981 #include < ...

  10. Spyder中figure显示设置

    Spyder是Python的一个IDE.和其他的Python的IDE相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值. 如果不是进行大规模的工程开发,重点专注 ...