zoukankan      html  css  js  c++  java
  • 面向对象2 类属性的增删改查

    实例只有数据属性,没有函数属性             实例没有函数属性,只有类有函数属性

     1 class Chinese:
     2     dang = ''  # 类属性
     3 
     4     def __init__(self, name, age, gender):
     5         print('我是初始化函数,我开始运行了')
     6         self.mingzi = name  # 实例属性
     7         self.nainling = age
     8         self.xinbie = gender
     9         print('我运行结束了')
    10 
    11     def sui_tan():
    12         print('随地吐痰')
    13 
    14     def chadui(self):
    15         print(self)  # 证明self就是实例本身
    16         print('插队到前面')
    17 
    18 
    19 p1 = Chinese('哈哈', 18, 'femail')
    20 print(p1.__dict__)  # 查看实例的字典
    21 print(Chinese.__dict__)
    22 print(p1.dang)
    23 Chinese.sui_tan()
    24 Chinese.chadui(p1)    # 把实例传进去就可以运行
    25 p1.chadui()    # class自动将p1当做实参传进函数,就可以运行
    26 输出:
    27 我是初始化函数,我开始运行了
    28 我运行结束了
    29 {'mingzi': '哈哈', 'nainling': 18, 'xinbie': 'femail'}
    30 {'__module__': '__main__', 'dang': '', '__init__': <function Chinese.__init__ at 0x006AE2F8>, 'sui_tan': <function Chinese.sui_tan at 0x006AE2B0>, 'chadui': <function Chinese.chadui at 0x006AE268>, '__dict__': <attribute '__dict__' of 'Chinese' objects>, '__weakref__': <attribute '__weakref__' of 'Chinese' objects>, '__doc__': None}
    31 32 随地吐痰
    33 <__main__.Chinese object at 0x00691FD0>
    34 插队到前面
    35 <__main__.Chinese object at 0x00691FD0>
    36 插队到前面

    定义函数属性   命名 动词加名词

     1 class Chinese:
     2     dang = ''  # 类属性
     3 
     4     def __init__(self, name, age, gender):
     5         print('我是初始化函数,我开始运行了')
     6         self.mingzi = name  # 实例属性
     7         self.nainling = age
     8         self.xinbie = gender
     9         print('我运行结束了')
    10 
    11     def sui_tan():
    12         print('随地吐痰')
    13 
    14     def chadui(self):
    15         print(self)  # 证明self就是实例本身
    16         print('插队到前面')
    17 
    18 
    19 Chinese.nihao = 'haha'  # 增加类属性
    20 print(dir(Chinese))  # 查看类属性名字
    21 print(Chinese.nihao)
    22 p1 = Chinese('你好', 123, 'sdf')
    23 print(p1.nihao)
    24 del Chinese.dang
    25 try:
    26     if Chinese.dang:
    27         print('存在')
    28     else:
    29         print('已删除')
    30 except Exception as f:
    31     print('wu')
    32 输出:
    33 ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'chadui', 'dang', 'nihao', 'sui_tan']
    34 haha
    35 我是初始化函数,我开始运行了
    36 我运行结束了
    37 haha
    38 wu

    重新定义函数,或者修改函数

     1 class Chinese:
     2     def __init__(self, name):
     3         self.name = name
     4 
     5     def play_ball(self):
     6         print('%s 正在打篮球' % self.name)
     7 
     8 
     9 p1 = Chinese('小白')
    10 p1.play_ball()
    11 
    12 
    13 def eat_food(self, food):
    14     print("%s 正在吃 %s" % (self.name, food))
    15 
    16 
    17 Chinese.eat = eat_food
    18 print(dir(Chinese))
    19 p1.eat('cai')
    20 
    21 
    22 def test(self):
    23     print('重新定义的函数')
    24 
    25 
    26 Chinese.play_ball = test
    27 p1.play_ball()
    28 输出:
    29 小白 正在打篮球
    30 ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'eat', 'play_ball']
    31 小白 正在吃 cai
    32 重新定义的函数
  • 相关阅读:
    C#实现-浏览器UA解析获得手机、系统、浏览器等信息
    C#代码实现-冒泡排序
    C# DateTime 工具类
    net core 3.1 跨域 Cors 找不到 “Access-Control-Allow-Origin”
    C#/.Net开发入门篇(3)——console类的输入输出
    C#/.Net开发入门篇(2)——第一个控制台应用程序
    C#/.Net开发入门篇(1)——开发工具安装
    docker 学习笔记(2)--docker file命令
    docker 学习笔记(1)--常用命令
    导出大数据方法。批量导BOM
  • 原文地址:https://www.cnblogs.com/ch2020/p/12425473.html
Copyright © 2011-2022 走看看