74. Python中 类的实例属性和方法

目录

实例属性

实例方法

函数和方法的区别:

其他操作


实例属性

实例属性是从属于实例对象的属性, 也称为”实例变量”; 他的使用有如下几个要点:

=> 实例属性一般在__init__()方法中通过如下代码定义:

    self.实例属性名 = 初始值

=> 在本类的其他实例方法中, 也是通过self进行访问:

    self.实例属性名

=> 创建实例对象后, 通过实例对象访问

    Obj01 = 类名()  #创建对象, 调用__init__()初始化属性

    Obj01.实例属性名 = 值 #可以给已有属性赋值, 也可以给新加属性;

实例方法

实例方法是从属于实例对象的方法; 实例方法的定义格式如下:

def  方法名(self [,参数列表]):

函数体

方法调用格式如下:

     对象.方法名([实参列表])

要点:

=> 定义实例方法时, 第一参数必须为self; 和前面一样, self指当前的实例对象;

=> 调用实例方法时, 不需要也不能给self传参; self由解释器自动传参;

函数和方法的区别:

=>都是用来完成一个功能的语句块, 本质一样;

=>方法调用时, 通过对象来调用; 方法从属于特定实例对象, 普通函数没有这个特点;

=> 直观上看, 方法定义时需要传self, 函数不需要;

实例对象的方法调用本质:

===> a = Student()

===> a.say_score(60)  --------> 解释器翻译: Student.say_score(a,60)

其他操作

=> dir(obj) 可以获得对象的所有属性, 方法

=> obj.__dict__  对象的属性字典

=> pass 空语句

=> isinstance( 对象,类型 )  判断”对象”是不是”指定类型”

class NiceStudent:
    def __init__(self,name,score):
        self.name = name #实例属性
        self.score = score

    def say_score(self):
        print("{0}的分数是: {1}".format(self.name,self.score))

s1 = NiceStudent("张三",99)
print(dir(s1))  #这个对象所有的属性和方法
print(s1.__dict__) #对象的字典属性  {'name': '张三', 'score': 99}

print(isinstance(s1,NiceStudent))#s1这个对象是不是NiceStudent的实例对象

class Woman:
    pass   #定义一个类,为空,没有意义的类,不影响代码,以后接着写这个类,什么都没有

print(isinstance(s1,Woman))#s1这个对象是不是NiceStudent的实例对象


输出:

D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name', 'say_score', 'score']
{'name': '张三', 'score': 99}
True
False

Process finished with exit code 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值