python小白——面向对象——成员介绍

字段

字段分为两种:普通字段静态字段

普通字段

普通字段,又叫实例属性,在面向对象中属于对象,在对象被创建时产生。也就是说,普通字段只能通过对象来访问,不可通过类访问
——代码如下:

class Ziduan():
    #普通字段(实例属性)
    def __init__(self):
        #通过对象创建普通字段
        self.common_fields='我是普通字段'

#实例化
z=Ziduan()
print(z.common_fields)

其中,因为普通字段属于对象,所以在创建不同对象时,会自动创建不同的普通字段保存在内存中。如果这些对象的该字段都彼此相同,此时创建普通字段就会占据不必要的内存。

静态字段

静态字段,属于类,保存在类中,可以通过对象或者通过类来访问
——代码如下:

class Ziduan():
    #静态字段
    #直接在类里面创建
    stastic_fields='我是静态字段'
#实例化
z=Ziduan()
print(z.stastic_fields)#通过对象访问
print(Ziduan.stastic_fields)#通过类访问

静态字段属于类,创建对象时不会创建新的对象。

方法

普通方法

普通方法又叫实例方法,保存在类中,通过对象或类调用
——代码如下:

class Method():
    #普通方法
    def cm(self):
        print('我是普通方法')
#实例化
m=Method()
m.cm()#通过对象访问
Method.cm(m)#通过类调用

注意:普通方法保存在类中,在创建对象时不会自动创建新的方法。
普通方法第一个参数必须是该实例对象(默认self)
普通方法可以访问类中的所有成员。

静态方法

通过装饰器@stasticmethod创建,保存在类中,可以通过类、对象调用。
——代码如下:

class Method():
    #静态方法
    @staticmethod
    def stm():
        print('我是静态方法')
#实例化
m=Method()
m.stm()#通过对象调用
Method.stm()#通过类调用

静态方法只能访问类中的静态成员,不能在继承中修改。

类方法

通过装饰器@classmethod创建,保存在类中,通过类、对象调用。
——代码如下:

class Method():
    #类方法
    @classmethod
    def cm1(cls):
        print('我是类方法')
#实例化
m=Method()
m.cm1()#通过对象调用
Method.cm1()#通过类调用

第一个参数必须是类本身(默认cls)
其中cls代表类本身,类似于普通方法中的self。

Property等

用于以属性的方式调用方法

property

(1)创建方法,只能访问,不能赋值传参。
——代码如下:

class Method():
    @property
    def cm1(self):
        print('property')

m=Method()
m.cm1#访问property

(2)property绑定,实现删改查功能
——代码示例如下:

class Method():
    def __init__(self):
        self.p=0
    def get_p(self):
        print(self.p)
    def delete_p(self):
        del self.p
    def set_p(self,new):
        self.p=new
    prop=property(fget=get_p,fdel=delete_p,fset=set_p)#捆绑

m=Method()
m.prop#查,调用get_p()
m.prop=1#改
del m.prop#删

test.setter

用于通过属性调用方法,传参赋值
——代码如下:

class Method():
    @property#先通过property创建
    def test(self):
        print('property')
    @test.setter
    def test(self, name):
        self.name = name
        print(self.name)

m=Method()
m.test=20#赋值,调用@test.setter

test.deleter

用于通过属性进行删除
——测试代码如下:

class Method():
    @property#先通过property创建
    def test(self):
        print('property')
    @test.setter
    def test(self, name):
        self.name = name
        print(self.name)

    @test.deleter
    def test(self):
        print(self.name)
        del self.name
        try:
            print(self.name)
        except AttributeError:
            print('Deleted')

m=Method()
m.test=20#赋值,触发@test.setter
del m.test#del关键字触发@test.deleter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值