python课程回顾复习记录简要10

本文回顾了Python的高级语法,包括封装性的不同形式,重点讲解了属性`property`的使用,如何简化setter和getter方法。还探讨了动态语言的概念,强调了Python作为动态语言在运行时添加属性和方法的灵活性,并介绍了生成器的概念及其优势,包括如何创建和使用生成器来节省内存资源。
摘要由CSDN通过智能技术生成

高级语法
1.封装性进阶
原先学习过对属性私有化,在类属性名前加双下划线(即__),只允许本类访问

class Computer(object):
    """
    给类添加object
    私有化属性 前边加__
    setter和getter
    """
    def __init__(self):
    	#私有化属性前边加__
        self.__brand="DEll"
    #setter方法
    def set_brand(self,brand):
        self.__brand=brand
    #getter方法
    def get_brand(self):
        return self.__brand
#创建对象
computer=Computer()
computer.set_brand("huawei")
print(computer.get_brand())

在这里插入图片描述
(1)形式为“xxxx”或“xxxx()”为公有的,如:公有变量、公有方法,在外部可直接访问;

class Computer(object):
    def __init__(self):
        # 公有属性
        self.brand = "小米"
        self.size = 8

    def show_info(self):

        print("品牌名称:", self.brand)
        print("内存大小:", self.size)
# 创建对象
computer = Computer()
# 访问属性 对象名.属性
print(computer.brand)
# 访问方法 对象名.方法()
computer.show_info()

在这里插入图片描述

(2)形式为“_xx”或“_xx()”–私有化[ 使用不多]。即前置单下划线,为私有化属性或方法,类对象和子类可以访问,且需要注意的是*若采用“from 模块名 import ”的形式导入不了该类私有化属性或方法

# coding:utf-8
class Computer(object):
    def __init__(self):
        # 私有属性
        self.__price=2

    def show_info(self):

        print("私有属性:",self.__price)
    def __fun(self):
        print("--私有方法--")
# 创建对象
computer = Computer()
# 访问私有化属性 对象名._类名__属性名
print("名字重整的方式访问私有属性:",computer._Computer__price)
#访问私有方法
fun=computer._Computer__fun
fun()

在这里插入图片描述
(4)形式为“xx”或“xx()”即前后双下划线,通常为 Python 系统提供的属性、模块或魔法方法,如:maininit()等,建议开发者不要以这种形式命名
(5)形式为“xx_”或“xx_()”即后置单下划线,通常是开发者用于避免与 Python 关键字冲突而命名的。

# coding:utf-8
"""
标识符的命名规则:
1.由字母、数字、下划线组成;
2.不能使用关键字作为命名;
3.开头不能是数字;
4.区分大小写、对大小写敏感;
5.对长度没有限制。
"""
a = 100
print(a)
_else = 100
print(_else)
return_ = 90
print(return_)

在这里插入图片描述
2**.属性property**
开头说的setter和getter方法处理时不太方便.原因:获取属性值之前,需要先设置属性值。步骤:①设置属性值,setter;②获取属性值,getter。
首先,从一个自定义类 Student 说起,给该类的年龄属性进行封装,即写 getter 与 setter 方法,此时需要对年龄属性进行私有化。

class Student(object):
    def __init__(self):
        self.__age = 0
    def set_age(self, age):
        # if 0 <= age and age <= 140:
        if 0 <= age <= 140:
            self.__age = age
        else:
            self.__age = 0
    # self.__age = age
    def get_age(self):
        return self.__age
# 使用 :创建对象
student = Student()
#设置属性
student.set_age(-18)
print("年龄值:",student.get_age())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值