Python类中的“静态字段”“动态字段”“静态方法”“动态方法”

首先,要知道Python类中两个概念:字段和方法

“字段”和“方法”都有“动态”和“静态”之分,即:

  • 字段
    - 静态字段
    - 动态字段

  • 方法
    - 静态方法
    - 动态方法

以下事例标明了:“静态字段”,“动态字段”以及“动态方法”是什么样子的,因为显而易见,就不用语言进行过多描述:

#coding:utf-8

class Car:
    # 下面是静态字段
    memo = u'车辆具有出厂合格证'
    
    def __init__(self, brand, model, speed, price, engine):
        # 下面是动态字段
        self.Brand = brand
        self.Model = model
        self.Speed = speed
        self.Price = price
        self.__EngineType = engine
        
    # 下面是动态方法
    def Turnleft(self):
        print self.Brand + u'开始向右转向。'

上述事例中,并没有展现“静态方法”,那么“静态方法”长什么样子?如何生成?
其实“静态方法”只需要执行两步操作,就可以转换成“静态方法”
1. 在方法前加上:@staticmethod
2. 把“动态方法”括号中的“self”去掉
如:
@staticmethod
def Forward():
    print u'开始向前进'
那么关于这四种类型,有什么特点?以下进行总结:
  1. 四种类型,均可以被“对象”进行调用,但不建议使用“对象”调用“静态方法”和“静态字段”,而建议使用“类”对其进行调用
  2. “动态方法”和“动态字段”只能由“对象”进行调用,而无法使用“类”进行调用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们定义一个类时,可以在类中定义属性和方法。属性也被称为成员变量或字段。在 Python 中,属性可以分为公有和私有。 公有属性可以被外部访问和修改,而私有属性只能在类内部访问和修改。在 Python 中,私有属性的命名规则是在属性名前面加上两个下划线“__”。 静态字段是指在类中定义的公有属性,它属于类,而不是类的实例对象。静态字段可以通过类名来访问和修改,也可以通过实例对象来访问。 下面是一个示例代码: ```python class Person: # 公有静态字段 name = "Tom" age = 18 def __init__(self): # 私有属性 self.__gender = "male" def get_gender(self): # 访问私有属性 return self.__gender def set_gender(self, gender): # 修改私有属性 self.__gender = gender ``` 在上面的代码中,我们定义了一个 Person 类,其中包含公有静态字段 name 和 age,和一个私有属性 gender。我们还定义了两个方法 get_gender 和 set_gender,用来访问和修改私有属性 gender。 接下来,我们可以通过以下代码来访问和修改这些属性: ```python # 访问公有静态字段 print(Person.name) # 输出:Tom print(Person.age) # 输出:18 # 修改公有静态字段 Person.name = "Jerry" print(Person.name) # 输出:Jerry # 创建 Person 对象 p = Person() # 访问私有属性 print(p.get_gender()) # 输出:male # 修改私有属性 p.set_gender("female") print(p.get_gender()) # 输出:female ``` 在上面的代码中,我们首先访问和修改了公有静态字段 name 和 age。然后我们创建了一个 Person 对象,并访问和修改了其私有属性 gender。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值