欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > python编程-内置函数globals(),getattr(),property(),hasattr(),delattr(),dict()详解

python编程-内置函数globals(),getattr(),property(),hasattr(),delattr(),dict()详解

2025/2/9 1:47:36 来源:https://blog.csdn.net/qq_37481709/article/details/145504420  浏览:    关键词:python编程-内置函数globals(),getattr(),property(),hasattr(),delattr(),dict()详解

1. 内置函数 globals() 
用于返回当前全局作用域中的所有变量和它们的值。它返回一个字典,其中包含了全局作用域中的所有变量名和对应的值。 
 

# 假设我们有以下全局变量
name = "Alice"
age = 30# 使用 globals() 获取全局作用域中的变量
global_vars = globals()# 打印全局变量
for var_name, var_value in list(global_vars.items()):print(f"{var_name}: {var_value}") # 动态创建一个全局变量
def create_global_variable(var_name, var_value):globals()[var_name] = var_valuecreate_global_variable("city", "New York")# 现在我们可以访问全局变量 city
print(f"City: {city}")  # 输出: City: New York 


2. 内置函数 getattr()
getattr(object, name[, default])
object: 要获取属性的对象。
name: 属性的名称。
default (可选): 如果属性不存在,返回的默认值。

getattr()用于获取对象的属性值。它接受三个参数:对象、属性名和默认值。如果对象具有指定的属性,则返回该属性的值;如果对象没有该属性,则返回默认值(如果提供了默认值)或引发 AttributeError 异常。

class Person:def __init__(self, name, age):self.name = nameself.age = ageperson = Person("Alice", 30)# 获取对象属性
name_value = getattr(person, "name")
age_value = getattr(person, "age")print(f"Name: {name_value}")
print(f"Age: {age_value}")


3. property() 函数
property() 函数可以把类中的方法伪装成属性。它主要用来将一个类的某个方法变成属性调用。

‌语法‌:
property(fget=None, fset=None, fdel=None, doc=None)
fget:获取属性值的函数
fset:设置属性值的函数
fdel:删除属性值的函数
doc:属性的文档字符串

‌示例‌:

class Circle:def __init__(self, radius):self._radius = radius@propertydef radius(self):return self._radius@radius.setterdef radius(self, value):if value >= 0:self._radius = valueelse:raise ValueError("Radius must be non-negative")c = Circle(5)
print(c.radius)  # 输出: 5
c.radius = 10
print(c.radius)  # 输出: 10


4. hasattr() 函数
hasattr() 函数用于判断对象是否包含对应的属性或方法。如果对象有指定的属性或方法,返回 True,否则返回 False。‌语法‌:
hasattr(object, name)
object:对象
name:字符串,属性或方法的名称
‌示例‌:

class Person:def __init__(self, name):self.name = namep = Person("Alice")
print(hasattr(p, "name"))  # 输出: True
print(hasattr(p, "age"))   # 输出: False

5. delattr() 函数
delattr() 函数用于删除对象的属性。如果对象中有该属性则删除成功,否则抛出 AttributeError。‌语法‌:
delattr(object, name)
object:对象
name:字符串,要删除的属性名称
‌示例‌:

class Person:def __init__(self, name):self.name = namep = Person("Alice")
delattr(p, "name")
# print(p.name)  # 如果取消注释,这行会抛出 AttributeError,因为 'name' 属性已被删除

6. dict() 函数
dict() 函数用于创建一个字典。可以传入关键字参数、映射或可迭代对象(元素为二元组)来创建字典。

‌语法‌:
dict(**kw)
dict(mapping, **kw)
dict(iterable, **kw)
**kw:关键字参数,直接传入键值对
mapping:映射对象,包含键值对的可迭代对象
iterable:可迭代对象,每个元素是一个包含两个元素的元组或列表‌

示例‌:

# 使用关键字参数创建字典
d1 = dict(a=1, b=2, c=3)
print(d1)  # 输出: {'a': 1, 'b': 2, 'c': 3}# 使用映射对象创建字典
d2 = dict([('a', 1), ('b', 2), ('c', 3)])
print(d2)  # 输出: {'a': 1, 'b': 2, 'c': 3}# 使用可迭代对象创建字典(需要每个元素是二元组)
d3 = dict((('a', 1), ('b', 2), ('c', 3)))
print(d3)  # 输出: {'a': 1, 'b': 2, 'c': 3}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com