手机能建网站吗,大连云app官方下载,室内设计公司名称创意设计,宝盒官方网站私有和公有 在python中 定义类的时候#xff0c;可以给 属性和方法设置 访问权限#xff0c;即规定在什么地方可以使用。 权限一般分为两种#xff1a;公有权限、私有权限 公有权限 定义#xff1a;直接定义的属性和方法就是公有的特点#xff1a; 可以在任何地方访问和使…私有和公有 在python中 定义类的时候可以给 属性和方法设置 访问权限即规定在什么地方可以使用。 权限一般分为两种公有权限、私有权限 公有权限 定义直接定义的属性和方法就是公有的特点 可以在任何地方访问和使用只要有对象就可以访问和使用。 私有权限 定义 1、只能在类内部定义class 关键字的缩进中 2、只需要在属性名 或者方法名 前边 加上两个下划线这个方法或者属性就变成了私有的。特点私有 只能在当前类的内部使用不能在类外部和子类直接使用。应用场景一般来说定义的属性和方法都为公有的。 某个属性 不想在外部直接使用定义为私有 某个方法是内部的方法不想在外部使用定义为私有。 定义人类name 属性 age 属性私有
class Person:def __init__(self, name, age): # 公有方法self.name name # 公有self.__age age # 公有 -- 私有在属性名前加上两个下划线。def __str__(self): # 公有方法return f{self.name}, {self.__age}def set_age(self, age): # 定义公有方法修改私有属性if age 0 or age 120:print(提供的年龄信息不对。)returnself.__age ageif __name__ __main__:xw Person(小王, 18)print(xw) # 小王, 18xw.__age 1000 # 添加一个公有 属性 __ageprint(xw) # 小王, 18xw.set_age(110)print(xw) # 小王, 110
对象分类 python 中一切皆对象 对象分类 类对象 就是类 在代码执行的时候解释器会自动创建 作用 1、使用类对象创建 实例对象2、存储一些类的特征值类属性 实例对象 1、创建对象也称为实例化所以 由类对象类创建的对象 称为是实例对象简称实例。 2、一般来说没有特殊强调我们所说的对象 都是指 实例对象实例 3、实例对象也可以保存实例特征值实例属性 4、就是使用 类名创建的对象。 属性的划分 使用 实例对象.属性 访问属性 的时候会先在 实例属性中查找如果找不到去类属性中查找找到就使用找不到就报错。 即 每个实例对象 都有可能访问类属性值前提实例属性和类属性不重名。 实例属性 概念 是每个实例对象 具有的特征属性。每个实例对象的特征定义 一般都是 在 init 方法中使用 self.属性名 属性值 来定义。特征内存 每个实例对象 都会保存自己的实例属性即 内存中存在多份访问和修改 # 可以认为是通过 self 实例对象.属性 属性值 # 修改 实例对象.属性 # 访问 类属性 概念 是类对象具有的 特征是整个类的特征。定义 一般都是 在类的内部 class 缩进中方法的外部 def 的缩进外部 定义的变量特征内存 只有类对象保存的一份即在内存中只有一个。访问和修改 # 即通过类名 类对象.属性 属性值 类对象.属性 什么时候定义类属性 代码中 使用的属性 基本上都是 实例属性即都通过 self 定义。 当某个属性值描述的信息是整个类的特征这个值变动所有的这个类的对象这个特征都会发生变化 案例 # 1. 定义一个 工具类
# 2. 每件工具都有自己的 name
# 3. 需求 —— 知道使用这个类创建了多少个工具对象?class Tool:# 定义类属性 count记录创建对象的个数count 0def __init__(self, name):self.name name # 实例属性工具的名字# 修改类属性的值Tool.count 1 # 类名.属性 属性值if __name__ __main__:# 查看 创建对象的个数print(Tool.count) # 0 查看类.属性tool1 Tool(锤子)print(Tool.count) # 1tool2 Tool(扳手)print(Tool.count) # 2print(tool2.count) # 2 先找实例属性 count找不到找类属性 count找到 使用。 方法的划分 实例方法 定义时机 如果方法中 需要使用 实例属性则这个方法 必须 定义为 实例方法定义 直接定义的方法就是实例方法 class 类名def 方法名selfpass参数 参数一般写做 self表示的是 实例对象。调用 实例对象.方法名 类方法 定义时机 如果方法中 不需要使用 实例属性但需要使用 类属性则这个方法 可以 定义为 类方法建议定义 定义类方法需要在方法名上方 书写 classmethod 即使用classmethod 装饰器装饰 class 类名classmethoddef 方法名clspass参数 参数一般写做 cls 表示类对象即类名同样不需要手动传递Python 解释器会自动传递。调用 # 方法一 类名.方法名 # 方法二 实例对象.方法名() 静态方法了解 定义时机 方法中 既不需要使用 实例属性也不需要使用 类属性可以将这个方法定义为 静态方法。定义 定义静态方法需要使用 装饰器吧 staticmethod 装饰方法。 class 类名staticmethoddef 方法名pass参数 静态方法 一般对参数没有要求一般不写调用 # 方法一 类名.方法名 # 方法二 实例对象.方法名() 类方法实例
# 1. 定义一个 工具类
# 2. 每件工具都有自己的 name
# 3. 需求 —— 知道使用这个类创建了多少个工具对象?class Tool:# 定义类属性 count记录创建对象的个数count 0def __init__(self, name):self.name name # 实例属性工具的名字# 修改类属性的值Tool.count 1 # 类名.属性 属性值classmethoddef show_tool_count(cls): # cls 就是类对象类名return cls.countif __name__ __main__:# 查看 创建对象的个数print(Tool.show_tool_count())tool1 Tool(锤子)print(Tool.show_tool_count()) # 通过类对象.方法名 调用tool2 Tool(扳手)print(tool2.show_tool_count()) # 通过实例对象.方法名调用 案例一
# 需求:
# 1. 设计一个 Game 类
# 2. 属性:
# • 定义一个 top_score 类属性 - 记录游戏的历史最高分
# • 定义一个 player_name 实例属性 - 记录当前游戏的玩家姓名
# 3. 方法:
# • 静态方法 show_help() - 显示游戏帮助信息
# • 类方法 show_top_score() - 显示历史最高分
# • 实例方法 start_game() - 开始当前玩家的游戏
# - ① 使用随机数 生成 10-100 之间数字 作为本次游戏的得分
# - ② 打印本次游戏得分 : 玩家 xxx 本次游戏得分 ooo
# - ② 和历史最高分进行比较, 如果比历史最高分高, 修改历史最高分
# 4. 主程序步骤: main
# 1 查看帮助信息
# 2 查看历史最高分
# 3 创建游戏对象开始游戏
# 4 再一次游戏
import random
class Game:类名 Game属性top_score 0 类属性 保存历史最高分player_name 实例属性 定义在 init 中方法top_score 0def __init__(self, play_name):self.play_name play_name # 实例属性# 静态方法staticmethoddef show_help():print(这是游戏的帮助信息)# 类方法classmethoddef show_top_score(cls):# 类方法 show_top_score() - 显示历史最高分print(f历史最高分为: {cls.top_score})# return Game.top_score # 类名.属性名def start_game(self):print(f玩家{self.play_name}开始游戏)score random.randint(10, 100)print(f玩家 {self.play_name} 本次游戏得分 {score})if score Game.top_score:Game.top_score scoreif __name__ __main__:Game.show_help()Game.show_top_score()player Game(小明)player.start_game()Game.show_top_score()player Game(小明)player.start_game()Game.show_top_score()