属性
Python 语言中对象的属性,可以分为类属性(Class Attribute)和实例属性(Instance Attribute)。在8.2节所演示的初始化方法中定义的属性,都属于实例属性。本节要对类属性和实例属性分别进行深入阐述。
2025年01月11日
Python 语言中对象的属性,可以分为类属性(Class Attribute)和实例属性(Instance Attribute)。在8.2节所演示的初始化方法中定义的属性,都属于实例属性。本节要对类属性和实例属性分别进行深入阐述。
2025年01月11日
手把手学编程 Python。
Python 中的类是什么呢?类相当于月饼,做月饼不是有个模板吗?就像有个印章,得去买模板。月饼印章是盖好的,有纹路之类的。把面粉丢进去之后再按在桌子上,就能按出一个月饼来。
而这个模具,也就是模型就相当于所说的类,它有什么用呢?它可以不断地去盖出很多个月饼,而且所有盖出来的月饼都是一模一样的,跟纹路是一样的,所以这个模型就相当于这个类,这就是类的意义。
2025年01月11日
实例属性:实例属性是属于类的实例(对象)的属性。每个实例都可以有自己独立的一套实例属性,这些属性的值可以因实例而异。例如,在定义一个Person类时:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
2025年01月11日
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。
如果你看过比较优秀的 Python 开源框架,肯定见到过元类的身影。例如,在一个类中定义了类属性 __metaclass__,这就说明这个类使用了元类来创建。
2025年01月11日
# 定义一个基础类 Animal,用于表示动物
class Animal:
# 构造函数,用于初始化动物的名称和年龄
def __init__(self, name, age):
self.__name = name # 将名称设置为私有属性,防止外部直接访问
self.__age = age # 将年龄设置为私有属性,防止外部直接访问
# 以下是 Getter 和 Setter 方法,用于安全地访问和修改私有属性
# 获取动物名称的方法
def get_name(self):
return self.__name
# 设置动物名称的方法
def set_name(self, name):
self.__name = name
# 获取动物年龄的方法
def get_age(self):
return self.__age
# 设置动物年龄的方法,确保年龄为正数
def set_age(self, age):
if age > 0:
self.__age = age
# 定义一个抽象方法 make_sound,子类需要重写此方法以提供具体实现
def make_sound(self):
pass # 此处不实现,仅作为接口
# 定义一个 Dog 类,继承自 Animal 类,表示狗
class Dog(Animal):
# 构造函数,初始化狗的名称、年龄和品种
def __init__(self, name, age, breed):
super().__init__(name, age) # 调用父类构造函数初始化名称和年龄
self.__breed = breed # 将品种设置为私有属性
# 获取狗品种的方法
def get_breed(self):
return self.__breed
# 设置狗品种的方法
def set_breed(self, breed):
self.__breed = breed
# 重写 make_sound 方法,提供狗叫的具体实现
def make_sound(self):
return "Woof!"
# 定义一个 Cat 类,继承自 Animal 类,表示猫
class Cat(Animal):
# 构造函数,初始化猫的名称、年龄和颜色
def __init__(self, name, age, color):
super().__init__(name, age) # 调用父类构造函数初始化名称和年龄
self.__color = color # 将颜色设置为私有属性
# 获取猫颜色的方法
def get_color(self):
return self.__color
# 设置猫颜色的方法
def set_color(self, color):
self.__color = color
# 重写 make_sound 方法,提供猫叫的具体实现
def make_sound(self):
return "Meow!"
# 以下是示例代码,用于展示如何使用上述类
# 如果当前脚本作为主程序运行
if __name__ == "__main__":
# 创建一个 Dog 对象,并初始化名称、年龄和品种
dog = Dog("Buddy", 5, "Golden Retriever")
# 创建一个 Cat 对象,并初始化名称、年龄和颜色
cat = Cat("Whiskers", 3, "Black")
# 展示封装的使用
print(f"Dog's name: {dog.get_name()}") # 输出狗的名称
dog.set_age(6) # 修改狗的年龄
print(f"Dog's age: {dog.get_age()}") # 输出狗的年龄
print(f"Cat's name: {cat.get_name()}") # 输出猫的名称
print(f"Cat's color: {cat.get_color()}") # 输出猫的颜色
# 展示多态的使用
animals = [dog, cat] # 创建一个包含狗和猫的列表
for animal in animals:
# 调用每个动物的 make_sound 方法,输出不同的叫声
print(f"{animal.get_name()} says {animal.make_sound()}")
2025年01月10日
Visual C++ 运行库 是微软公司开发的,是Windows操作系统应用程序的基础库组件,很多软件都是由Visual C++来开发的,有些软件可能会缺失相关文件,使用运行库可以修复,使软件正常运行。
当电脑出现“找不到msvcp140.dll无法继续执行代码”、“应用程序的并行配置不正确”等问题时,并不是软件问题,而是缺少必要的基础运行库。
2025年01月10日
微软常用运行库合集x64位这些运行库都是采用Microsoft Visual Studio 20XX编写的软件必须使用的公用DLL运行库,相当于程序的字典文件。这些运行库都是采用Microsoft Visual Studio 20XX编写的软件必须使用的公用DLL运行库,相当于程序的字典文件。 某些网上和论坛的部分精简软件没有附带这些公用DLL,所以安装这些运行库是系统安装后第一件要做的事情。 由于Microsoft Visual C++ 2008 SP1已经包含Microsoft Visual C++ 2008,所以2008 SP1的ATL升级文件不提供。某些程序在64位系统下运行仍然需要32位版本的运行库,因为程序是基于32位Visual Studio开发。