Python学习 :面向对象 -- 类的成员
类的成员
一、字段
- 字段可以分为'普通字段'和'静态字段'两种
- 普通字段(保存在对象中,执行时只能通过对象来进行访问)
- 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空间),执行时可以通过对象来访问,也可以通过类来访问)
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学习 :面向对象 -- 类的成员的更多相关文章
- Python学习:类和实例
Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...
- Python之面向对象类和对象
Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...
- Java面向对象——类的成员
Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean ...
- python面向对象(类的成员及类方法)
类的普通成员 字段 方法 属性 类的高级成员 静态字段 静态方法 属性方法 类方法 类成员修饰符 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中, ...
- python基础学习笔记——类的成员
一. 细分类的组成成员 之前咱们讲过类大致分两块区域,如下图所示: 每个区域详细划分又可以分为: class A: company_name = '老男孩教育' # 静态变量(静态字段) __ipho ...
- Python面向对象 | 类的成员
一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分. 每个区域详细划分又可以分为: class A: company = '阿里巴巴' # 静态变量(静态字段) __tel ...
- Python面向对象(类的成员之属性)
day24 类的成员之属性 class Foo(): def bar(self): print("bar") @property def per(self): ') return ...
- Python面向对象(类的成员之方法)
day24 类的成员之方法 - 普通方法,保存在类中,由对象来调用,self > 对象 - 静态方法,保存在类中,由类直接调用 - 类方法,保存在类中,由类直接调用,cls > 当前类 c ...
- Python面向对象(类的成员之字段)
day24 类的成员之字段 # 字段 - 普通字段,保存在对象中,执行只能通过对象访问 - 静态字段,保存在类中, 执行 可以通过对象访问 也可以通过类访问 clas ...
随机推荐
- C#多个线程同时执行一个任务示例
注意:如果电脑是单核单线程的,这么做是没有意义的. 这里直接贴一下主要代码 using System; using System.Collections.Generic; using System.T ...
- 关于Ubuntu16.04下phpmyadmin出现mbstring错误的正解
1.打开终端,输入php -i | grep extension_dir 查看extension_dir的绝对路径 2.查看phpinfo,php.ini的绝对路径 3.打开php.ini文件. 设置 ...
- linux性能系列--内存
一.啥是内存呢? 回答:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大. 内存(Memory)也被称为内存储器, ...
- CentOS7中安装VMwareTools
本例中为在Linux(以CentOS 7为例)安装VMware Tools. 1.首先启动CentOS 7,在VMware中点击上方“VM”,点击“Install VMware Tools...”(如 ...
- 阿里嘉年华ADC Workshop PPT分享
前段时间在阿里嘉年华的workshop做了一些关于memcache高可用和MMM Mod的分享. 下面是相关的PPT,特此分享. ADC官网直接在线查看:http://adc.alibabatech. ...
- JavaBean 规范
JavaBean是公共Java类,需要满以下条件: 1.所有属性为private2.提供默认无参构造方法3.提供getter和setter4.实现serializable接口 具体为: (1)Java ...
- POJ 2407 Relatives 欧拉函数题解
版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...
- 2018.09.15模拟总结(T1,T3)
过了一周,终于迎来了第二次模拟(这不是期待的语气),看第一周毒瘤程度,我就觉得接下来的模拟只能更毒瘤. 花了10多分钟读完了三道题,觉得暴力还是挺好写的,然后在每一道题都思索那么几分钟后,觉得还是写暴 ...
- StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用
ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行Redis的一系列操作,对于一个整个应用 ...
- ethereumjs-vm/examples/run-transactions-simple
https://github.com/ethereumjs/ethereumjs-vm/tree/master/examples/run-transactions-simple prerequisit ...