Python进阶01-面向对象基础

news2024/9/21 9:51:27

零、文章目录

Python进阶01-面向对象基础

1、面向对象编程思想

(1)编程思想是什么
  • 所谓的编程思想,就是人们利用计算机来解决实际问题的一种思维方式
  • 常见的编程思想有面向过程和面向对象,很多计算机语言的语法各不相同,但是它们基本的编程思想却是差不多的。
  • Python是同时支持面向对象和面向过程的编程语言!
(2)面向过程的编程思想
  • 传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化

    • 将要实现的功能描述为一个从开始到结束按部就班的连续的“步骤”
    • 依次逐步完成这些步骤,如果某一个步骤的难度较大,又可以将该步骤再次细化为若干个子步骤,以此类推,一直到结尾并得到我们想要的结果
  • 程序的主体是函数,一个函数就是一个封装起来的模块,可以实现特定的功能,程序的各个子步骤也往往就是通过相关的函数来完成的!从而实现代码的重用与模块化编程

(3)面向对象的编程思想
  • 所谓的面向对象,就是在编程的时候尽可能的去模拟现实世界
  • 在现实世界中,任何一个操作或者业务逻辑的实现都需要一个实体来完成!实体就是动作的支配者,没有实体,也就没有动作发生!
  • 有动词就一定有实现这个动作的实体!
  • 所谓的模拟现实世界,就是使计算机的编程语言在解决相关业务逻辑的时候,与真实的业务逻辑的发生保持一致,需要使任何一个动作的发生都存在一个支配给该动作的一个实体(主体),因为在现实世界中,任何一个功能的实现都可以看做是一个一个的实体在发挥其各自的“功能”(能力)并在内部进行协调有序的调用过程!
(4)面向对象实现报名案例
  • 第一步:分析哪些动作是由哪些实体发出的

    • 学生提出报名,
    • 学生提供相关资料,
    • 学生缴费,
    • 机构收费,
    • 教师分配教室,
    • 班级增加学生信息
    • 在整个过程中,一共有四个实体:**学生、机构、教师、班级!**在现实中的一个具体的实体,就是计算机编程中的一个对象!
  • 第二步:定义这些实体,为其增加相应的属性和功能。

    • 属性就是实体固有的某些特征特性信息,在面向对象的术语中,属性就是以前的变量。
    • 功能就是就是实体可以完成的动作,在面向对象的术语中,功能就是封装成了函数或方法。

image-20231121144316235

  • 第三步:让实体去执行相应的功能或动作
    • 学生提出报名
    • 学生提供相关资料
    • 教师登记学生信息
    • 学生缴费
    • 机构收费
    • 教师分配教室
    • 班级增加学生信息
(5)面向过程向面向对象思想迁移
  • 以前写代码,首先想到的是需要实现什么功能——调用系统函数,或者自己自定义函数,然后按部就班的执行就行了!
  • 以后写代码,首先想到的是应该由什么样的主体去实现什么样的功能,再把该主体的属性和功能统一的进行封装,最后才去实现各个实体的功能。
  • 注意:面向对象并不是一种技术,而是一种思想,是一种解决问题的最基本的思维方式!
  • 所以,面向对象的核心思想是:不仅仅是简单的将功能进行封装(封装成函数),更是对调用该功能的主体进行封装,实现某个主体拥有多个功能,在使用的过程中,先得到对应的主体,再使用主体去实现相关的功能!
(6)面向过程和面向对象的区别
  • 都可以实现代码重用和模块化编程,面向对象的模块化更深,数据也更封闭和安全
  • 面向对象的思维方式更加贴近现实生活,更容易解决大型的复杂的业务逻辑
  • 从前期开发的角度来看,面向对象比面向过程要更复杂,但是从维护和扩展的角度来看,面向对象要远比面向过程简单!
  • 面向过程的代码执行效率比面向对象高

2、面向对象基本概念

(1)面向对象基本概念
  • OOA:面向对象分析
  • OOD:面向对象设计
  • OOP:面向对象编程
(2)对象的概念
  • 对象,object,现实业务逻辑的一个动作实体就对应着OOP编程中的一个对象!
    • 对象使用属性(property)保存数据!
    • 对象使用方法(method)管理数据!
(3)类的概念
  • 对象如何产生?又是如何规定对象的属性和方法呢?
    • 答:在Python中,采用类(class)来生产对象,用类来规定对象的属性和方法!也就是说,在Python中,要想得到对象,必须先有类!
  • 为什么要引入类的概念?
    • 答:类本来就是对现实世界的一种模拟,在现实生活中,任何一个实体都有一个类别,类就是具有相同或相似属性和动作的一组实体的集合!所以,在Python中,对象是指现实中的一个具体的实体,而既然现实中的实体都有一个类别,所以,OOP中的对象也都应该有一个类!
(4)类的定义
  • Python3中类分为:经典类 和 新式类

    • 经典类:不由任意内置类型派生出的类,称之为经典类
    class 类名:
    	代码
    	......
    
    • 新式类
    class 类名():
    	代码
    	......
    
  • 类名既可以大写也可以小写,遵守一般的标识符的命名规则(以字母、数字和下划线构成,并且不能以数字开头),一般为了和方法名相区分,类名的首字母一般大写!(大驼峰法)

  • 新式类创建案例如下:

'''
类是相同或相似属性和方法的一组对象的集合,是一个抽象概念。
如果想获得一个对象,首先应该创建一个类,基本语法:
class 类名(object):
    # 属性 => 变量
    # 方法 => 函数

注意事项:类名在Python中,一般采用大驼峰的命名法,其主要由字母、数字以及下划线,但是不能以数字开头!!!
注意事项:类在定义构成中,只是描述了一下未来这个对象所拥有的属性和方法,但是其本身并没有并调用,只有在实例化对象时其才真正执行!!!
'''
class Person(object):
    # 属性
    # 方法
    def eat(self):
        print('i can eat food!')

    def run(self):
        print('i can run!')
(5)类的实例化(创建对象)
  • 类只是对象的一种规范,类本身基本上什么都做不了,必须利用类得到对象,这个过程就叫作类的实例化
  • 类是一个抽象概念,在定义时,其并不会真正占用计算机内存空间。但是对象是一个具体的事务,所以其要占用计算机的内存空间。
  • 基本语法:
对象名 = 类名()
  • 创建对象案例:
'''
类是具有相同或相似属性或方法的一组对象的集合,其是一个抽象概念。要想把其创建为具体的对象,需要经过实例化的过程。
获取对象 => 类的实例化,基本语法:
对象名称 = 类名()
产生了对象以后,则这个对象会自动拥有类中的所有公共属性和公共方法,如何调用?
答:可以通过"对象名称.属性或者对象名称.方法()"方式实现对自身属性和方法的调用


类是一个抽象概念,可以同时产生多个对象。
'''
class Person(object):
    # 属性
    # 方法
    def eat(self):
        print('i can eat food!')

    def drink(self):
        print('i can drink juice!')

# 类的实例化 => 产生一个甚至多个对象
p1 = Person()
p1.eat()
p1.drink()

p2 = Person()
p2.eat()
p2.drink()
(6)self
  • 在类中,有一个特殊关键字self,其指向类实例化对象本身
'''
有一个问题:在我们定义类的时候,我们描述的是未来实例化对象所拥有的属性和方法,但是为什么所有的对象方法都要有一个参数self,self关键字到底代表什么含义呢?
答:在类中定义的对象方法中的self参数,与实例化产生的对象内存地址一致,所以代表两者指向了相同的内存空间。所以self
关键字就代表实例化对象本身。
简单来说:谁实例化了Person类,类中的对象方法就指向谁,self就相当于实例化对象本身!
由于self关键字在类的内部就代表对象本身,所以我们在方法的里面可以使用self调用自身的属性或方法。
'''
class Person(object):
    # 属性
    # 方法
    def speak(self):
        print(self)

# 实例化p1对象
p1 = Person()
print(p1)   # <__main__.Person object at 0x00000184FF8FD3D0>
p1.speak()  # <__main__.Person object at 0x00000184FF8FD3D0>

p2 = Person()
print(p2)   # <__main__.Person object at 0x00000184FF8FD400>
p2.speak()  # <__main__.Person object at 0x00000184FF8FD400>

3、添加和获取对象属性

(1)属性是什么
  • 属性即是特征,比如:人的姓名、年龄、身高、体重…都是对象的属性。
  • 对象属性既可以在类外面添加和获取,也能在类里面添加和获取。
(2)类外部添加对象属性
  • 基本语法:对象名.属性名 = 值
(3)类外面获取对象属性
  • 基本语法:对象名.属性名
'''
在Python中,每个对象一般都是由两部分内容组成的:① 属性 ② 方法
我们既可以在类的内部也可以在类的外部为其对象添加属性或获得属性
在类的外部如何添加属性:
对象名称.属性 = 属性值,如果属性值是一个字符串类型,还需要使用引号引起来!
在类的外部如何获得属性:
print(对象名称.属性)
'''
class Person(object):
    # 属性
    # 方法
    def eat(self):
        print('i can eat food!')

    def drink(self):
        print('i can drink juice!')

# 实例化产生对象
p1 = Person()
# 在类外部为p1对象添加属性
p1.name = '小明'
p1.age = 23
# 在类外部获得p1对象的属性
print(p1.name)
print(p1.age)

p1.eat()
p1.drink()

p2 = Person()
p2.name = '小美'
p2.age = 19

print(p2.name)
print(p2.age)
(4)类里面获取对象属性
  • 基本语法:self.属性名
'''
刚才为大家介绍过,可以在类的外部为对象添加动态属性,添加完成后,我们是否可以在类的内部对其进行获取呢?
在类的内部,我们可以通过对象方法中的self关键字来实现对自身属性和方法的调用
① self指向谁?谁实例化这个类,self就指向谁(对象)
② self有何作用?可以通过self.属性或者self.方法()形式来实现对自身属性或方法的调用
'''
# 1、定义一个类
class Person(object):
    # 2、定义属性
    # 3、定义方法
    def eat(self):
        pass

    def print_info(self):
        print(f'姓名:{self.name}')
        print(f'年龄:{self.age}')
        print(f'地址:{self.address}')

# 4、实例化Person类产生对象
p1 = Person()
# 5、动态为对象添加属性
p1.name = '小明'
p1.age = 23
p1.address = '广州市天河区'

# 6、通过p1对象,调用自身的print_info方法
p1.print_info()

4、魔术方法

(1)魔术方法是什么
  • 在Python中,__xxx__()的函数叫做魔法方法,指的是具有特殊功能的函数。
(2)__init__()方法
  • 作用:实例化对象时,连带其中的参数,会一并传给__init__()函数自动并执行它。__init__()函数的参数列表会在开头多出一项,它永远指代新建的那个实例对象,Python语法要求这个参数必须要有,名称为self。
  • __init__()方法,在创建一个对象时默认被调用,不需要手动调用。
  • __init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。
'''
__init__() :初始化方法(在其他编程语言中,也称之为构造函数),顾名思义,其主要的作用就是进行一些初始化工作
实际工作场景:
① 在类的定义,用于描述对象未来所拥有的公共属性
② 还可以用于进行系统的初始化工作 => 比如文件操作中的打开文件,数据库操作中的连接数据库等等

魔术方法:
① 在什么情况下,__init__()会被触发(调用),当实例化对象时,__init__()方法会自动被触发
实例化多少次,__init__()方法就会被调用多少次
② 在实际工作中,主要用于公共属性的初始化或者项目的初始化工作

举个栗子:让我们Person实例化对象自动拥有name、age以及address三个公共属性
'''
class Person(object):
    # 1、描述未来对象所拥有的公共属性
    def __init__(self):
        self.name = '孙悟空'
        self.age = 50
        self.address = '花果山水帘洞'

    # 2、描述未来对象所拥有的公共方法
    def eat(self):
        print('i can eat food!')
    def drink(self):
        print('i can drink juice!')

# 1、实例化对象p1
p1 = Person()
print(p1.name)
print(p1.age)
print(p1.address)

p2 = Person()
print(p2.name)
print(p2.age)
print(p2.address)
(3)带参数的__init__()方法
  • 如果需要在对象创建的时候传入参数,需要使用带参数的__init__()
'''
遗留问题:虽然我们可以通过__init__()魔术方法为每一个对象添加三个属性name、age以及address,但是每个实例化对象
所拥有的属性值都是一样的,如何解决以上问题。
答:通过__init__()方法进行传递参数
'''
class Person(object):
    # 定义公共属性
    def __init__(self, name, age, address):
        # self => 对象本身
        # self.name属性 = 参数,即使属性与参数同名也没有任何影响
        self.name = name
        self.age = age
        self.address = address

    # 定义公共方法
    def speak(self):
        # self还可以调用自身属性或方法
        print(f'我的名字:{self.name},年龄:{self.age},来自:{self.address}')

# 实例化对象
p1 = Person('孙悟空', 23, '花果山水帘洞')
print(p1.name)
print(p1.age)
print(p1.address)

p2 = Person('猪八戒', 22, '高老庄')
print(p2.name)
print(p2.age)
print(p2.address)
(4)__str__()方法
  • 当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__方法,那么就会打印从在这个方法中return 的数据。
'''
掌握一个魔术方法有两个地方:① 在什么情况下会被触发 ② 在实际工作中,__str__()方法有何作用
__str__() :① 当我们使用print()直接打印对象时,__str__()魔术方法会自动被触发
           ② 当我们需要打印输出某个对象的信息时,一般都可以定义__str__()魔术方法
注意事项:__str__(),必须返回字符串类型的数据,否则会直接报错。

需求:定义一个汽车类,类实例化对象必须要拥有哪些属性?brand品牌、model型号、color颜色
当我们打印这个汽车类对象时,要求输出这辆车的相关信息
'''
# 1、定义一个类
class Car(object):
    # 2、为未来对象添加公共属性
    def __init__(self, brand, model, color):
        self.brand = brand
        self.model = model
        self.color = color

    # 3、定义一个魔术方法__str__()
    def __str__(self):
        return f'汽车品牌:{self.brand},汽车型号:{self.model},汽车颜色:{self.color}'

# 4、实例Car类,产生一个对象
bmw = Car('宝马', '320', '黑色')
print(bmw)# 汽车品牌:宝马,汽车型号:320,汽车颜色:黑色

benz = Car('奔驰', '600', '灰色')
print(benz)# 汽车品牌:奔驰,汽车型号:600,汽车颜色:灰色
(5)__del__()方法
  • 当删除对象时,python解释器也会默认调用__del__()方法。
'''
① 这个魔术方法在什么情况下被触发 ② 在实际工作中,哪里可以使用到__del__方法
__del__() : 在Python中,其被称之为删除方法(在其他编程语言中,也称之为析构方法)
__init__() :构造方法,项目初始化
__del__() :析构方法,项目清理或项目收尾

__del__()当对象被删除时会自动被触发 => ① 手工del 对象 ② 当程序执行结束,内存开始清理对象时
在实际工作中,__del__()方法主要用于清除对象或者实现项目清理工作,如关闭文件,关闭数据库连接
f = open()

f.read()
f.write()

f.close()
'''
class Person(object):
    # 1、定义公共属性
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 2、定义一个__del__()魔术方法
    def __del__(self):
        print('当del 对象时,此魔术方法会自动被触发!')

# 3、实例化对象
p1 = Person('白骨精', 22)
# 4、手工删除p1对象
del p1 #当del 对象时,此魔术方法会自动被触发!

5、面向对象案例

(1)学生成绩打印
  • 需求:定义学员信息类,包含姓名、成绩属性,定义成绩打印方法(90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格)
'''
案例1:定义学员信息类,包含姓名、成绩属性,定义成绩打印方法(90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格)

记住:在实际工作中,为了保证数据的安全性,一般不建议在类外部直接调用自身属性,如果想调用自身属性都是通过对应的方法
实现的!
'''
class Student(object):
    # 为未来实例化对象定义公共属性
    def __init__(self, name, score):
        self.name = name
        self.score = score

    # 为未来实例化对象定义公共方法
    def print_grade(self):
        if self.score >= 90:
            print(f'{self.name}成绩为{self.score}分,优秀!')
        elif self.score >= 80:  # 隐藏条件 80 <= score < 90
            print(f'{self.name}成绩为{self.score}分,良好!')
        elif self.score >= 70:
            print(f'{self.name}成绩为{self.score}分,中等!')
        elif self.score >= 60:
            print(f'{self.name}成绩为{self.score}分,合格!')
        else:
            print((f'{self.name}成绩为{self.score}分,不及格!'))

s1 = Student('Tom', 98)
s1.print_grade()

s2 = Student('Jennifer', 59)
s2.print_grade()
(2)小明爱跑步
  • 需求:小明体重75.0公斤,小明每次跑步会减掉0.1公斤,小明每次吃东西体重增加0.2公斤分析:
  • ① 对象:小明② 属性:姓名、体重③ 方法:跑步、吃东西
'''
案例2:小明体重75.0公斤,小明每次跑步会减掉0.10公斤,小明每次吃东西体重增加0.20公斤。
分析:① 对象:小明 => 人类别 ② 属性:姓名、体重 ③ 方法:跑步、吃东西 ④ 添加一个打印方法,输出自身信息
'''
class Person(object):
    # 1、定义对象自身属性
    def __init__(self, name, weight):
        self.name = name
        self.weight = weight

    # 2、定义对象自身方法
    def run(self):
        # 跑步可以减少自身的体重属性
        self.weight -= 0.1

    def eat(self):
        # 吃东西可以增加自身的体重属性
        self.weight += 0.2

    # 3、定义一个__str__魔术方法,打印对象自身信息
    def __str__(self):
        return f'我的名字叫{self.name},当前体重{self.weight:.2f}kg!'

p1 = Person('小明', 75)
print(p1)

# 小明爱跑步
p1.run()
print(p1)

p1.eat()
print(p1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2085210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenHarmony南向开发:分布式软总线-softbus_tool使用规范

oftbus_tool 是 OpenHarmony 分布式软总线 API 调用测试工具&#xff0c;文件结构如下图所示。 softbus_tool 能够将软总线 interfaces 目录下的一些常用接口集中起来&#xff0c;供设备间搭建一些场景时使用&#xff08;比如设备绑定、BR 组网&#xff0c;BLE 组网&#xff0…

oracle的BITAND()函数用法

BITAND函数是计算两个数据的按位与 如下&#xff1a; 0010 0101 的按位与结果是0000 转为2进制就是0 0010 0011 的按位与结果是0010 转为2进制就是2

linux本地库迁移到阿里云云redis

背景 领导要我把另外一个不同账号的云redis进行同步 想法 阿里云不能直接备份还原redis&#xff0c;需要把备份文件先给搞到本地redis,然后本地redis进行同步到云redis 大概的逻辑是这样 实操 我这里下载的版本是4.0.2,文件如下: redis-shake-linux-amd64.tar.gz github下…

独立站除了Shopify还有什么?

国外电商平台仅占40-50%的市场份额。独立网站具有巨大的潜力。通过建立独立的跨境电商网站&#xff0c;您可以拥有自己的品牌销售体系。然而&#xff0c;对于很多平台卖家来说&#xff0c;建站可能并不是一件容易的事。在构建网站之前需要考虑几个问题&#xff0c;以及如何选择…

如何用wireshark分析找出url接口和param参数???

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

Java学习第四天

程序流程控制 顺序结构&#xff1a;按顺序从上往下执行&#xff1b; 分支结构&#xff1a; if分支结构&#xff08;区间匹配&#xff09; switch分支&#xff08;值匹配&#xff09; 循环结构&#xff1a; for循环 while循环 do-while循环 死循环 continue和break区别&…

鸿道Intewell实时操作系统MIPS架构生态:龙芯2K1000

在当今快速发展的工业互联时代&#xff0c;实时操作系统&#xff08;RTOS&#xff09;扮演着至关重要的角色。实时操作系统为工业制造、能源电力、轨道交通、汽车电子等领域提供了高实时、高可靠和高效率的技术支持。实时操作系统的设计注重实时性、并行性、可靠性和功耗&#…

基于分布式计算的电商系统设计与实现【系统设计、模型预测、大屏设计、海量数据、Hadoop集群】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目展示项目介绍 目录摘要Abstract1 引言1.1 研究背景1.2 国内外研究现状1.3 研究目的1.4 研究意义 2 关键技术理论介绍2.1 Hadoop相关组件介绍2.2 分布式集群介绍2.3 Pyecharts介绍2.4 Fl…

Keil The selected deivce“xxx“is unknown。。。识别到芯片依然烧录不进去程序解决或者未识别

之前一直用DAP烧录&#xff0c;用Jlink后烧录发现不行 在网上找了很多教程&#xff0c;版本等问题都一一排查依然不行 最后通过修改Port解决。。。。 将JTAG改成SW后就可识别芯片并且可以烧录。。。。

Vocechat本地部署结合内网穿透实现远程聊天交互实战方案(1)

文章目录 前言1. 拉取Vocechat2. 运行Vocechat3. 本地局域网访问4. 群晖安装Cpolar5. 配置公网地址6. 公网访问小结 7. 固定公网地址 前言 本文主要介绍如何在本地群晖NAS搭建一个自己的聊天服务Vocechat&#xff0c;并结合内网穿透工具实现使用任意浏览器远程访问进行智能聊天…

蚂蚁数科隐私计算技术平台FAIR入选2024数博会十大领先科技成果

8月28日&#xff0c;2024数博会领先科技成果发布会在贵阳国际生态会议中心举行&#xff0c;蚂蚁数科自主研发的隐私计算技术平台&#xff08;FAIR&#xff09;凭借领先的技术及广泛的应用场景脱颖而出&#xff0c;成功入选本届大会的“十大领先科技成果”奖。 据悉&#xff0c;…

HDMI、USB、WIFI的名称魔性更改

HDMI 授权组织把原来 HDMI 2.0 和 2.1 接口统称为 HDMI 2.1 的做法&#xff0c;等于是让电子设备上的 HDMI 2.1 标示丧失了区分作用&#xff0c;这操作就很离谱。 说起来类似这样的事情已经其实不是第一次发生了。 就拿现在最普及的 USB 接口来说&#xff0c;在 USB 3.2 标准…

音频检测电路 | 声音传感器模块 | 口哨开关 | Arduino

音频检测电路 | 声音传感器模块 | 口哨开关 | Arduino 案例分析电路设计1. **基本音频检测电路设计**电路结构:2. **灵敏度调节原理**方法:3. **非 MCU 控制的 LED 触发**设计步骤:4. **电路示例**5. **示意图(文本描述)**总结实验方法案例分析 一个硅胶娃娃,挤压或拍打…

(第三十八天)

1 、 harbor 软件包下载 https://github.com/search?qharbor&typerepositories 2 、出现拒绝连接错误&#xff0c;可能是由于容器没开 # 问题解决&#xff1a; [rootdocker ~] # curl localhost:5000/v2/_catalog curl : (7) Failed connect to localhost:5000; 拒绝…

零基础国产GD32单片机编程入门(一)GPIO输出Keil5工程创建含源码

文章目录 一.概要二.GD32单片机GPIO内部结构图三.GD32单片机GPIO输入输出信号流向四.GD32单片机GPIO引脚的复用以及重映射五.从零开始创建一个GD32F103C8T6单片机GPIO输出驱动LED灯例程六.工程源代码下载七.小结 一.概要 GPIO(general porpose intput output):单片机通用输入输…

如何禁止电脑访问网站

一、修改Hosts文件 找到Hosts文件&#xff1a;在Windows系统中&#xff0c;Hosts文件通常位于C:\Windows\System32\drivers\etc\目录下。 编辑Hosts文件&#xff1a;以管理员身份打开记事本或任意文本编辑器&#xff0c;然后找到并打开Hosts文件。 添加禁止访问的域名&#…

【小趴菜前端实习日记4】

el-table数据更新视图不更新的问题、el-dialog居中展示、el-form表单验证之对象属性验证、vue2过滤器 一、el-table数据更新视图不更新的问题二、el-dialog居中展示三、el-form表单验证之对象属性验证四、vue2过滤器 一、el-table数据更新视图不更新的问题 手动触发元素更新&a…

【C#】字段

C# 类具有哪些成员&#xff1f; 字段 1.什么是字段 字段(field)是一种表示与对象或类型(类与结构体)关联的变量字段是类型的成员,旧称“成员变量”与对象关联的字段亦称“实例字段”与类型关联的字段称为“静态字段”,由static修饰 通过一个代码来详细了解实例字段与静态字段…

简过网:大专学历可以考教师编吗?

大专学历可以考教师编吗&#xff1f; 在这里可以明确的告诉大家&#xff0c;大专考生可以报考小学老师&#xff0c;只要你有教师资格证&#xff0c;年龄在18~35周岁之间&#xff0c;大专的学历就可以报考小学教师编啦。 如果没有教师资格证&#xff0c;在备考教师编前&#x…

python从入门到精通:数据可视化-图形开发

1、json数据格式 • Json是一种轻量级的数据交互格式&#xff0c;可以按照Json指定的格式去组织和封装数据 • Json本质上是一种带有特殊格式的字符串 主要功能&#xff1a;json就是一种在各个编程语言中流通的数据格式&#xff0c;负责不同编程语言中的数据传递和交互&#xf…