码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习 :面向对象 -- 类的成员

时间:2019-03-04 21:10:11      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:==   span   set   font   info   北京   --   property   使用   

类的成员

一、字段

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

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

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

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学习 :面向对象 -- 类的成员

标签:==   span   set   font   info   北京   --   property   使用   

原文地址:https://www.cnblogs.com/ArticleYeung/p/10460401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!