溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現(xiàn)動態(tài)添加屬性和方法操作示例

發(fā)布時間:2020-08-29 09:31:05 來源:腳本之家 閱讀:192 作者:fanfen88 欄目:開發(fā)技術

本文實例講述了Python實現(xiàn)動態(tài)添加屬性和方法操作。分享給大家供大家參考,具體如下:

# -*- coding:utf-8 -*-
#!python3
class Person():
  def __init__(self, name, age):
    self.name = name
    self.age = age
p1 = Person('ff', '28')
print(p1.name, p1.age)
# 給實例對象動態(tài)添加sex屬性
p1.sex = 'female'
print(p1.sex)
# 給類動態(tài)添加屬性
Person.height = None
print(Person.height)
p1.height = '155'
print(p1.height)
# 動態(tài)定義一個方法
def run(self, speed):
  print('run with %d speed' % speed)
# 給實例綁定方法
import types
p1.run = types.MethodType(run, p1)
p1.run(30)
# Person.run = run # 運行錯誤 
# Person.run(4)
@classmethod
def run2(a, speed):
  print('run with %d m/s' % speed)
# 給類動態(tài)綁定方法
Person.run2 = run2    # 給類綁定的方法, 需加修飾器 @classmethod, 標定其為類方法,可被類添加
Person.run2(4)
p1.run2(5)       # 類的實例對象也可調用類動態(tài)添加的方法
@staticmethod
def eat():
  print('eat---')
Person.eat = eat    # 類可添加靜態(tài)方法, 定義靜態(tài)方法時,需加修飾器@staticmethod
Person.eat()
p1.eat()        # 實例對象同樣可調用類動態(tài)添加的靜態(tài)方法
del p1.name       # del 刪除屬性
delattr(p1, 'sex')
print(p1.name, p1.sex)

運行結果:

ff 28
female
None
155
run with 30 speed
run with 4 m/s
run with 5 m/s
eat---
eat---
Traceback (most recent call last):
  File "/home/python/Desktop/test/12_動態(tài)語言.py", line 41, in <module>
    print(p1.name, p1.sex)
AttributeError: 'Person' object has no attribute 'name'

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經(jīng)典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI