首页 > 编程语言 > 详细

python使用笔记24--面向对象编程2

时间:2020-06-13 21:40:52      阅读:59      评论:0      收藏:0      [点我收藏+]

类方法
  类里面自带的方法,不用实例化就可以调用,想象,模型上自带的功能
  类方法是公共的,在实例方法里面可以随意调用
  但是在类方法里不能调用实例方法,不能使用实例变量,但是他可以调用其他的类方法

1 @classmethod
2     def help(cls):#cls:Staff
3         ‘‘‘
4         一些公共的方法,就用类方法
5         类方法不能调用实例方法,不能调用实例变量
6         ‘‘‘
7         print(这里的员工都是来自%s%cls.nationnality)

类变量
  类在定义好的时候,就把这个变量定义好了,也是公共的

1 class Staff:
2     ‘‘‘员工类‘‘‘
3     nationnality = China#类变量,在定义类时,就已经在类里面了

实例方法
  实例化后才能调用的方法
实例变量
  实例化后才能调用的变量
属性方法
  看起来像变量的函数

1 class User:
2     @property#属性方法
3     def work_age(self):
4         create_time = 1528860238
5         return (time.time()-create_time) / (365*24*60*60)

静态方法
  一个和类没有关系的方法,就是一个普通的方法,只是写在类里面而已
  不能调用实例方法,也不能调用类方法

 1 @staticmethod 2 def help(): 3 print(我是帮助文档,这个类时用户类) 

继承

  子类继承父类公共的方法,也可以重写父类的方法

  父类的私有变量和私有方法不能继承

  重写:

    1.直接覆盖父类方法

    2.在父类的基础上添加新的功能

 1 class Car:
 2     def run(self):
 3         print(run...)
 4 
 5 
 6 class CcxCar(Car):
 7     def run(self):#重写,覆盖式的
 8         print(拐弯跑)
 9 
10 class CmcCar(Car):
11     def run(self):#重写,在父类方法的基础上做修改
12         super().run()#super():自动找父类
13         print(充电)

魔法方法

  一个类里面有一些特殊作用的方法,不需要你调用,在一些情况下会自动运行

  类里面__funcname__都是魔法方法,有一些特殊作用,比如__init__()等等

1 class Xxl:
2     def __init__(self):
3         self.name = xxl
4         self.sex = 

字典转对象

 1 class DictToObject(dict):
 2     ‘‘‘字典转对象‘‘‘
 3     def __getattr__(self, item):
 4         #__getattr__的作用是通过x.xx的时候它会自动调用__getattr__这个方法,把你要获取的属性的key传过来
 5         #比如说 user.name ,它就是调用了__getattr__,把name传给__getattr__函数,然后返回这个name的值
 6         value = self[item]
 7         if isinstance(value,dict):
 8             value = DictToObject(value)#如果是字典类型,直接返回DictToObject这个类的对象
 9 
10         elif isinstance(value,list) or isinstance(value,tuple):
11             #如果是list,循环list判断里面的元素,如果里面的元素是字典,那么就把字典转成DictToObject的对象
12             value = list(value)
13             for index,obj in enumerate(value):
14                 if isinstance(obj,dict):
15                     value[index] = DictToObject(obj)
16 
17         return value

python使用笔记24--面向对象编程2

原文:https://www.cnblogs.com/cjxxl1213/p/13121696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!