面向对象 .类的成员

博客介绍了类成员分为变量、方法和属性三类。变量包括实例变量和类变量,各有公有和私有之分;方法有实例方法、静态方法和类方法;属性可通过方法改造,编写时方法上方写 @property,调用时无需加括号,适用于简单无参有返回值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  1. 1.类的成员

class Foo:
    # 方法
    def __init__(self, name):
        # 实例变量/字段
        self.name = name
    # 方法
    def func(self):
        pass
    # obj,Foo类的对象
# obj,Foo类的实例
obj = Foo('呼哈')

成员共分为三类:

变量:
   - 实例变量(字段)
      - 公有实例变量(字段)
      - 私有实例变量(字段)
   - 类变量(静态字段)
      - 公有类变量(静态字段)
      - 私有类变量(静态字段)

实例一:

class Foo:
    # 类变量(静态字段)
    country = "中国"
    def __init__(self, name):
        # 实例变量(字段)
        self.name = name
    def func(self):
        pass
obj1 = Foo('1')
obj2 = Foo('2')
Foo.country

思考题: 如何验证儿子都不知道私有字段的存在.

无法访问:

class Base(object):
    __secret = "受贿"
class Foo(Base):
    def func(self):
        print(self.__secret)
        print(Foo.__secret)
obj = Foo()
obj.func()

可以访问:

class Base(object):
    __secret = "受贿"
    def zt(self):
        print(Base.__secret)
class Foo(Base):
    def func(self):
        print(self.__secret)
        print(Foo.__secret)
obj = Foo()
obj.zt()

方法:
    - 实例方法

class Foo(object):
    def __init__(self, name):
        self.name = name
    # 实例方法
    def func(self):
        print(self.name)
obj = Foo('..')
obj.func()

    - 静态方法

class Foo(object):
    def __init__(self, name):
        self.name = name
    # 静态方法,如果方法无需使用对象中封装的值,那么就可以使用静态方法
    @staticmethod
    def display(a1, a2):
        return a1 + a2
Foo.display(1, 3)

- 类方法

class Foo(object):
    # 类方法,cls是类
    @classmethod
    def show(cls, x1, x2):
        print(cls, x1, x2)
# 执行类方法
Foo.show(1, 8)

下面大家做一下这个题吧!

面试题: 静态方法 / 类方法和实例方法的区别?

属性(通过方法改造出来):
示例:

class Foo(object):
    def __init__(self):
        pass
    @property
    def start(self):
        return 1
    @property
    def end(self):
        return 10
obj = Foo()
print(obj.start)
print(obj.end)


总结:
1. 编写时
      - 方法上方写 @property
      - 方法参数:只有一个self
2. 调用时:无需加括号  对象.方法
3. 应用场景: 对于简单的方法,当无需传参且有返回值时,可以使@property
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值