Python 类/对象

1. 类定义

Python是面向对象的编程语言。

Python中几乎所有的东西都是对象,拥有属性和方法。

 

2. 创建类

如需创建类,使用关键字class。

创建名为 MyClass 的类,属性名为 X:

class MyClass:
    x = 7
print(MyClass)

<class '__main__.MyClass'>

 

3. 创建对象

使用 Myclass 类来创建对象 p1,并打印 X 的值:

class MyClass:
    x = 7

p1 = MyClass()
print(p1.x)

7

 

4. __init__()函数

上面的例子是最简单的类和对象,实际应用中并不真正有用。

理解类的含义,先了解内置函数(构造方法) __init__()

所有类都有一个名为 __init__()函数,它始终在启动类时执行。

使用 __init__() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:

实例:

创建名为 Person 类,使用 __init__() 函数为 name age 赋值:

复制代码
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p1 = Person("Bill", 63)

print(p1.name)
print(p1.age)
复制代码

Bill
63

注释:每次使用类创建对象,都会自动调用 __init__() 函数

 

5. 对象方法

对象也可以包含方法。对象中的方法是属于该对象的函数。

Person 类中创建方法:

实例

复制代码
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('Bill', 63)
p1.myfunc()
复制代码

Hello, my name is Bill

提示:self 参数是对类当前实例的引用,用于访问属于该类的变量。

 

6. 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('Bill', 63)
p1.myfunc()
复制代码

Hello my name is Bill

 

7. 修改对象属性

使用 del 删除对象的属性

实例

删除 p1 对象的 age 属性:

del p1.name
p1.myfunc()

AttributeError: 'Person' object has no attribute 'name'

 

8. 删除对象

使用 del 删除对象
实例

del p1

NameError: 'p1' is not defined

 

9. pass语句

类定义不能为空,但如果处于某种原因写了无内容的类定义语句,使用 pass 语句避免错误。

实例

class Person():
    pass

 

posted @   做梦当财神  阅读(273)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2020-07-22 特征选择(2)
2018-07-22 清华镜像方法更新python包
点击右上角即可分享
微信分享提示