标签:调用 图片 nbsp 查看 改变 类方法 class count __init__
一. 属性
所谓的属性,就是将一个类中的方法伪装成一个属性.在代码的级别是没有任何本质上的提升.但是让代码看起来更顺眼.
class Person: def __init__(self,name,age): self.name = name if type(age) is int: self.__age = age else: print( ‘你输入的年龄的类型有误,请输入数字‘) @property #属性的查看. 装饰器的用法 def age(self): return self.__age @age.setter #属性的修改 def age(self,a1): ‘‘‘判断,你修改的年龄必须是数字‘‘‘ if type(a1) is int: self.__age = a1 else: print(‘你输入的年龄的类型有误,请输入数字‘) @age.deleter #属性的删除 def age(self): del self.__age p1 = Person(‘帅哥‘,20) print(p1.age) p1.age = 23 #看上去更像是对某一个属性进行操作 print(p1.age) del p1.age print(p1.__dict__)
二. 类方法
类方法:通过类名调用的方法,类方法中第一个参数约定俗成为cls, python自动将类名(类空间)传给cls.
class A: def func(self): # 普通方法 print(self) @classmethod # 类方法 def func1(cls): print(cls) a1 = A() a1.func() A.func(a1) A.func1() a1 = A() a1.func1() # 对象调用类方法,cls 得到的是类本身.
类方法的使用场景:
1. 类中有些方法不需要对象的参与时
class A: name = ‘ale‘ count = 1 @classmethod def func1(cls): # 此方法无需对象参与 return cls.name + str(cls.count + 1) a1 = A() print(a1.func1()) print(A.func1())
2.对类中的静态变量进行改变.
3.继承中,父类得到子类的类空间.
也可以不通过类方法,让父类中的某个方法得到子类空间的任意值
class A: age = 12 def func2(self): print(self) # self 子类的对象,能得到子类 空间的任意值 class B(A): age = 22 b1 = B() b1.func2()
三. 静态方法
静态方法是类中的函数,不需要实例。静态方法主要是用来存放逻辑性的代码,主要是一些逻辑属于类,但是和类本身没有交互,即在静态方法中,不会涉及到类中的方法和属性的操作。可以理解为将静态方法存在此类的名称空间中。事实上,在python引入静态方法之前,通常是在全局名称空间中创建函数
@staticmethod 装饰静态方法
好处:
代码块清晰
提高复用性
标签:调用 图片 nbsp 查看 改变 类方法 class count __init__
原文地址:https://www.cnblogs.com/dong-/p/9379129.html