python ---- class类详解

1、class的定义

Python 中定义一个类使用 class 关键字实现,其基本语法格式如下:

class 类名:
    多个(≥0)类属性...
    多个(≥0)方法...

类名一般建议每个单词的首字母大写,其它字母小写,类名后继续接冒号(:)

2、__init__构造方法

构造方法用于创建对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它,并且一个类中只能有一个__init__构造方法。Python 类中,构造方法的语法格式如下:

def __init__(self,...):
    代码块

该构造方法的参数个数必须大于等于1,第一个参数通常命名为self(也可以用其他命名),代表对象本身;仅包含 self 参数的 __init__() 构造方法,又称为类的默认构造方法,除了self参数之外,还可以指定其他参数。即便不手动为类添加任何构造方法,Python 也会自动为类添加一个仅包含 self 参数的构造方法。示例如下:


class HelloWorld:
    
    def __init__(self):
        print("调用构造方法")
    
    def say(hh,content):
        print(content)


helloworld=HelloWorld()
helloworld.say("i am lichf")

当创建对象的时候,会调用__init__构造方法

PS C:\Users\love1\Documents\technology\python\project> python .\test1.py
调用构造方法
i am lichf
PS C:\Users\love1\Documents\technology\python\project>

3、属性

  • 类属性
    类属性是指定义在类中,但却在各个方法外定义的变量,示例如下:
class HelloWorld:
    
    # 类属性
    name = "lichf"
    age = 18
    def __init__(self):
        print("调用构造方法")
    
    def say(hh,content):
        print(content)

类属性的特点是,所有类的实例化对象都同时共享类变量,也就是说,类变量在所有实例化对象中是作为公用资源存在的。类方法的调用方式有 2 种,既可以使用类名直接调用,也可以使用类的实例化对象调用。即

HelloWorld.name
helloworld=HelloWorld()
helloworld.name
  • 实例属性
    实例变量指的是在实例方法内部,以“self.变量名”的方式定义的变量,其特点是只作用于调用方法的对象。另外,实例变量只能通过对象名访问,无法通过类名访问。示例如下:
class Person:
    def __init__(self):
        self.name = "feike"
        self.age= 18
    # 下面定义了一个say实例方法
    def info(self):
        self.addr= "henan"

其中 self.name 、self.age、self.addr 都是实例变量,其中self.addr属性只有当对象实例调用info()方法的时候才会被添加到该实例中去。

4、方法

  • 实例方法
    实例方法的调用:
    instance.实例方法(args)
    class类名.实例方法(instance,args)
class B:
    def __init__(self):
        self.l="lichf"
        self.n="19"
        self.i="henan"
    def __str__(self):
        return self.l+self.n+self.i
    def add(self,age):
        print(int(self.n)+age)
b= B()
b.add(11) # 同B.add(b,11)
B.add(b,11)

30
30
  • 类方法

  • 静态方法

相关推荐

  1. python ---- class详解

    2024-06-17 13:30:06       8 阅读
  2. Pythonclass和方法的用法详解及常见坑

    2024-06-17 13:30:06       12 阅读
  3. Python(class)的使用方法

    2024-06-17 13:30:06       18 阅读
  4. python模型和class语句协议

    2024-06-17 13:30:06       44 阅读
  5. Python详解

    2024-06-17 13:30:06       9 阅读
  6. Python,面向对象详解

    2024-06-17 13:30:06       5 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-17 13:30:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 13:30:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 13:30:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 13:30:06       20 阅读

热门阅读

  1. JVM

    2024-06-17 13:30:06       7 阅读
  2. 【无标题】

    2024-06-17 13:30:06       8 阅读
  3. 微信小程序vant的使用

    2024-06-17 13:30:06       8 阅读
  4. Leetcode 438. 找到字符串中所有字母异位词

    2024-06-17 13:30:06       7 阅读
  5. 【面试经典150题】【双指针】392. 判断子序列

    2024-06-17 13:30:06       12 阅读
  6. Python数据分析与机器学习在金融风控中的应用

    2024-06-17 13:30:06       8 阅读
  7. Hashtable 基本用法及其与 HashMap 的区别

    2024-06-17 13:30:06       11 阅读