zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SpringBoot+Mybatis 实现动态数据源切换方案
    mySql的case when用法
    mySql中The user specified as a definer ('root'@'%') does not exist
    jquery获取表单中的数据
    antdesign的input增加自定义校验规则
    net.sf.json将string转为map
    Js实现回车登录,监听回车事件
    css实现图片动画效果
    Freemarker + xml 实现Java导出word
    tomcat的jsp页面超过65535,导致500报错
  • 原文地址:https://www.cnblogs.com/keye/p/15046715.html
Copyright © 2011-2022 走看看