Python 面向对象编程:类、对象、初始化和方法详解
|
Python 是一种面向对象的编程语言。在 Python 中,几乎所有东西都是对象,都具有其属性和方法。
类似于对象构造函数或用于创建对象的“蓝图”的类。
创建一个类
要创建一个类,请使用关键字 class:
示例,创建一个名为 MyClass 的类,其中包含一个名为 x 的属性:创建对象
现在,我们可以使用名为 MyClass 的类来创建对象:
示例,创建一个名为 p1 的对象,并打印 x 的值:- p1 = MyClass()
- print(p1.x)
复制代码 init() 函数
上面的示例是最简单形式的类和对象,不太适用于实际应用程序。要理解类的含义,我们必须了解内置的 init() 函数。所有类都有一个名为 init() 的函数,该函数在初始化类时始终执行。使用 init() 函数来为对象属性分配值,或者在创建对象时需要执行的其他操作:
示例,创建一个名为 Person 的类,使用 init() 函数为 name 和 age 分配值:- class Person:
- def __init__(self, name, age):
- self.name = name
- self.age = age
- p1 = Person("John", 36)
- print(p1.name)
- print(p1.age)
复制代码 注意: 每次使用类创建新对象时,init() 函数都会自动调用。
str() 函数
str() 函数控制当类对象表示为字符串时应返回什么。如果未设置 str() 函数,则返回对象的字符串表示:
示例,没有 str() 函数的对象的字符串表示:- class Person:
- def __init__(self, name, age):
- self.name = name
- self.age = age
- p1 = Person("John", 36)
- print(p1)
复制代码 示例,带有 str() 函数的对象的字符串表示:- class Person:
- def __init__(self, name, age):
- self.name = name
- self.age = age
- def __str__(self):
- return f"{self.name}({self.age})"
- p1 = Person("John", 36)
- print(p1)
复制代码 对象方法
对象也可以包含方法。对象中的方法是属于对象的函数。让我们在 Person 类中创建一个方法:
示例,插入一个打印问候的函数,并在 p1 对象上执行它:- class Person:
- def __init__(self, name, age):
- self.name = name
- self.age = age
- def myfunc(self):
- print("Hello my name is " + self.name)
- p1 = Person("John", 36)
- p1.myfunc()
复制代码 注意: self 参数是对类的当前实例的引用,并用于访问属于类的变量。
self 参数
self 参数是对类的当前实例的引用,并用于访问属于类的变量。它不一定要命名为 self,您可以根据需要命名它,但它必须是类中任何函数的第一个参数:
示例,使用 mysillyobject 和 abc 代替 self:- class Person:
- def __init__(mysillyobject, name, age):
- mysillyobject.name = name
- mysillyobject.age = age
- def myfunc(abc):
- print("Hello my name is " + abc.name)
- p1 = Person("John", 36)
- p1.myfunc()
复制代码 修改对象属性
您可以像这样修改对象的属性:
示例,将 p1 的年龄设置为 40:删除对象属性
您可以使用 del 关键字来删除对象的属性:
示例,从 p1 对象中删除 age 属性:删除对象
您可以使用 del 关键字来删除对象:
示例,删除 p1 对象:pass 语句
类定义不能空,但如果由于某种原因类定义没有内容,请插入 pass 语句以避免出错。
示例最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注
来源:https://www.cnblogs.com/xiaowange/p/17787928.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2023-10-25 21:14:51
举报
回复
分享
|
|
|
|