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

python学习第二十二章

时间:2018-07-03 18:19:33      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:执行   pytho   四种   delattr   就是   代码   创建对象   name   实例化   

今日内容:

1.属性

2. 类方法

3.静态方法

4.反射

 

1. 属性

是指调用类中的函数,就像调用对象属性值一样调用.更权威解释:将方法 伪装 成属性,虽然在代码层面上没有任何高深之处,但是让其看起来更合理.

示例:

class A:
    def __init__(self,*args):
        self.name = args[0]
        self.height = args[1]
        self.weight = args[2]
    @property
    def bmi(self):
        return self.height /self.weight**2

a1 = A("leon",1.72,60)
print(a1.bmi)

注意,这里是通过加@property  这个装饰器来实现的,

即然是属性,那么也可以修改的,关于修改和删除,是通过下面方法实现的,

示例:

 

class B:
    def __init__(self,*args):
        self.name = args[0]
        self.__pwd = args[1]
    @property
    def pwd(self):
        return  self.__pwd
    @pwd.setter   #注意这里的装饰器名字和上面的函数名一致,以及下面的函数都是一致的,下面赋值会传入这个new_pwd里面
    def pwd(self,new_pwd):   
        self.__pwd = new_pwd
obj1 = B("leon","hao123")
obj1.pwd = 123456
print(obj1.pwd)

 

 

属性的删除操作示例:

class B:
    def __init__(self,*args):
        self.name = args[0]
        self.__pwd = args[1]
    @property
    def pwd(self):
        return  self.__pwd
    @pwd.setter   #注意这里的装饰器名字和上面的函数名一致,以及下面的函数都是一致的,下面赋值会传入这个new_pwd里面
    def pwd(self,new_pwd):
        self.__pwd = new_pwd
    @pwd.deleter
    def pwd(self):
        del self.__pwd
obj1 = B("leon","hao123")
obj1.pwd = 123456
print(obj1.pwd)
del obj1.pwd
print(obj1.pwd)

具体操作流程如下:

# 第一步,对属性进行改操作,自动执行 被这个@pwd.setter装饰器装饰的方法
# 第二步,将新值传给这个被@pwd.setter装饰器装饰的方法里面,当做参数.

 

2. 类方法,静态方法

类方法:类名去调用类方法,自动将类的空间传给类方法中的cls..对象如果调用类方法,自动将类空间传给类中的cls

示例:

 

class C:
    num = 1
    def __init__(self,*args):
        self.name = args[0]
        self.age  = args[1]
    @classmethod
    def class_fun(cls):
        print(cls.num)
c1 = C("leon",18)
c1.class_fun()

 

 什么情况下使用类方法?
 直接让类去操作类中的方法,没有必要创建对象在操作的时候,用类方法.

 

3. 静态方法

 

 

静态方法:在类中定义一个静态方法,无需传入你的类空间,对象空间,可以当成普通函数去用.(也就是不用再传入self的,也就是类中的独立函数)

示例:

class D:
    def __init__(self):
        pass
    @staticmethod
    def fun(a,b):
        return a + b
d1 = D()
print(d1.fun(2,3))

 

 

 4.反射(非常非常重要,)

反射:通过 字符串 操作一个空间 (对象).

总共有四个方法:

1.getattr()

2.hasattr()

3.setattr()

4.delattr()

 

四种场景的不同使用方法:

1,实例化一个对象去研究

 

 

 

   

python学习第二十二章

标签:执行   pytho   四种   delattr   就是   代码   创建对象   name   实例化   

原文地址:https://www.cnblogs.com/ahliucong/p/9259686.html

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