您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python

51自学网 2022-02-21 10:45:33
  python
这篇教程python写得很实用,希望能帮到您。
# 封装# Python并没有真正的私有化支持,但可用下划线得到伪私有 访问私有变量:实例._类名__变量名 访问私有方法:实例._类名__方法名()class Wife02():    def __init__(self,name,age,sex):  # 负责对象的初始化        self.set_name(name)        self.set_age(age)        self.set_sex(sex)   def set_name(self,value):        if isinstance(value,str):  # 数据类型是否是字符串            if '/u4e00' <= value <= '/u9fff':  # 是否是正文                self.__name = value            else:                raise ValueError("不是中国人")  # 抛出异常        else:            raise ValueError("数据类型错误")   def set_age(self,value):        if 18 <= value <= 100:            self.__age = value  # 私有化实例变量:在变量名称前,加入双下划线。        else:            raise ValueError("年龄不符,请重新创建对象")   def set_sex(self,value):        if value == "女":            self.__sex = value        else:            raise ValueError("性别错误")   def get_name(self):        return self.__name  # 返回私有变量的值   def get_age(self):        return self.__age   def get_sex(self):        return self.__sex# w01 = Wife02("zs",20,"女")  # ValueError: 不是中国人# w02 = Wife02("张三",8,"女")  # ValueError: 年龄不符,请重新创建对象# w03 = Wife02("张三",8,"男")  # ValueError: 年龄不符,请重新创建对象w04 = Wife02("张三",20,"女")print(w04._Wife02__age)  # 访问私有变量print(w04.get_age())  # 访问私有变量print(w04.__dict__)  # {'_Wife02__name': '张三', '_Wife02__age': 20, '_Wife02__sex': '女'}w04.set_age(30)  # 修改私有变量的值print(w04.__dict__)  # {'_Wife02__name': '张三', '_Wife02__age': 30, '_Wife02__sex': '女'}w04.sex = "男"  # 增加非私有化属性print(w04.__dict__)  # {'_Wife02__name': '张三', '_Wife02__age': 30, '_Wife02__sex': '女', 'sex': '男'}
class Wife03():    # 类的设计者,限制该类对象只能有如下的实例变量    __slots__ = ("__age","sex")  # 该类只有这两个属性    def __init__(self,age,sex = ""):        self.age = age  # 属性        self.sex = sex  # 实例变量   @property  # 负责age属性的读取操作 装饰器    def age(self):        return self.__age   @age.setter  # 负责age属性的写入操作    def age(self,value):        if 18 <= value <= 100:            self.__age = value  # 私有化实例变量:在变量名称前,加入双下划线。        else:            raise ValueError("年龄不符,请重新创建对象")w05 = Wife03(30)  # 调用的@age.setter下函数print(w05.age)  # 调用的@property下函数w05 = Wife03(20)  # 调用的@age.setter下函数print(w05.age)  # 调用的@property下函数# print(w05.__dict__)  # 报错 当定义了__slots__属性之后,Python对象将不再拥有__dict__属性和__weakref__属性print(w05.__slots__)  # ('__age', 'sex')print(w05._Wife03__age)print(dir(w05))  # 属性列表['_Wife03__age', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', 'age', 'sex']
# 核心思想:分而治之   封装变化class Person:    def __init__(self, name):        self.name = name    @property    def name(self):        return self.__name    @name.setter    def name(self, value):        self.__name = value    def go_home(self, car):        print(self.name, end="")        car.run("家")class Car:    def run(self, pos):        print("移动到" + pos)zs = Person("张三")car = Car()zs.go_home(car)

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注51zixue.net的更多内容!


Python
python实现自动抢课脚本的示例代码
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。