当前位置: 首页 > news >正文

做网站的工作量茂名放心营销网站开发

做网站的工作量,茂名放心营销网站开发,万网,asp影楼网站设计在Python中,魔术方法(Magic Methods)或称为双下划线方法(Dunder Methods),是一类具有特殊用途的方法,其名称前后都带有两个下划线(如 __init__、__str__ 等)。这些方法定…

在Python中,魔术方法(Magic Methods)或称为双下划线方法(Dunder Methods),是一类具有特殊用途的方法,其名称前后都带有两个下划线(如 __init____str__ 等)。这些方法定义了对象的内置行为,使得类的实例能够表现得像内置类型一样。以下是Python中一些常用的魔术方法及其使用示例:

1. __init__(self, ...)

用于对象的初始化。在创建对象时调用。

 

python复制代码

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

2. __str__(self)

定义对象的字符串表示。当使用 print() 或 str() 函数时调用。

 

python复制代码

class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person(name={self.name}, age={self.age})"
p = Person("Alice", 30)
print(p) # 输出: Person(name=Alice, age=30)

3. __repr__(self)

定义对象的“官方”字符串表示,通常用于调试。repr() 函数会调用这个方法。

 

python复制代码

class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name={self.name!r}, age={self.age!r})"
p = Person("Alice", 30)
print(repr(p)) # 输出: Person(name='Alice', age=30)

4. __add__(self, other)

定义加法运算符(+)的行为。

 

python复制代码

class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2
print(v3.x, v3.y) # 输出: 4 6

5. __getitem__(self, key)

定义获取元素的行为,用于索引操作(如 obj[key])。

 

python复制代码

class MyList:
def __init__(self, elements):
self.elements = elements
def __getitem__(self, key):
return self.elements[key]
ml = MyList([1, 2, 3, 4, 5])
print(ml[1]) # 输出: 2

6. __setitem__(self, key, value)

定义设置元素的行为,用于索引赋值操作(如 obj[key] = value)。

 

python复制代码

class MyList:
def __init__(self, elements):
self.elements = elements
def __getitem__(self, key):
return self.elements[key]
def __setitem__(self, key, value):
self.elements[key] = value
ml = MyList([1, 2, 3, 4, 5])
ml[1] = 10
print(ml[1]) # 输出: 10

7. __len__(self)

定义获取对象长度(如列表长度)的行为,用于 len() 函数。

 

python复制代码

class MyList:
def __init__(self, elements):
self.elements = elements
def __len__(self):
return len(self.elements)
ml = MyList([1, 2, 3, 4, 5])
print(len(ml)) # 输出: 5

8. __call__(self, *args, **kwargs)

定义对象像函数一样被调用的行为(如 obj())。

 

python复制代码

class Adder:
def __init__(self, n):
self.n = n
def __call__(self, x):
return x + self.n
add_five = Adder(5)
print(add_five(3)) # 输出: 8

9. __enter__(self) 和 __exit__(self, exc_type, exc_val, exc_tb)

用于定义对象的上下文管理行为,通常与 with 语句一起使用。

 

python复制代码

class MyContext:
def __enter__(self):
print("Entering the context")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Exiting the context")
return False # 如果返回 True,则异常会被忽略
with MyContext() as ctx:
print("Inside the context")
# 输出:
# Entering the context
# Inside the context
# Exiting the context

这些魔术方法是Python面向对象编程中非常强大的一部分,通过它们可以使自定义的类表现得更加自然和符合直觉。

http://www.yayakq.cn/news/768622/

相关文章:

  • 网络营销推广seo宁波网络seo推广
  • 一级a做爰片不卡免费网站怎么样在网站文章最后做超链接
  • 网站的建设和品牌价值的关系网页制作教程视频下载
  • 电子商务网站建设的规划方案四川网络推广seo
  • 一元夺宝网站怎么做wordpress响应网页代码
  • 图文网站建设手机设计菜单制作软件
  • 丝绸之路网站建设报告html5特效网站
  • 低价自适应网站建设网页设计项目模板代码
  • 制作网站哪家服务好贵州最近爆发的传染病
  • 建设专业网站怎样收费模板规格
  • 做百度推广是网站好还是阿里好长春可做微网站的公司
  • 如何推广网站?用什么网站做海报
  • 张家港市规划建设网站秒火食品代理网
  • 网络营销课程的心得体会网站优化公司方案
  • 美术主题资源网站建设现在推广什么app最挣钱
  • 南城网站建设价格外贸西班牙语网站建设
  • 做一个像美团的网站需要多少钱龙潭湖网站建设
  • 淮安做网站优化建筑公司使命愿景价值观
  • 做菠菜网站判多久离婚证app制作软件
  • phpstorm网站开发房地产交易网站
  • 信息网站开发网络公司wordpress 调用作者
  • 给个网站带颜色网站建设有关的职位
  • 比较好设计网站怀柔富阳网站建设
  • 网站模板有后台如何做好搜索引擎优化工作
  • 金耀网站建设网站制作网络组建与应用实训报告
  • 京东那个做快消的网站做网站引流做什么类型的网站最好
  • 长春火车站出站要求怎么做电影流量网站吗
  • 网页设计网站如何添加链接wordpress 页面 微博
  • iis编辑网站绑定大连做网站多少钱
  • 西安网站优化公司商务咨询公司经营范围