python类外属性和方法

python类外属性和方法

记得那是一个风和日丽的下午,正在学习cv的源码,突然看到
self.data_loader[ln].dataset.sample_name = np.arange(len(score)) # ?

sample_name 哪来的 ???

  1. python 没有匿名对象
  2. python 居然可以类外添加属性和方法?
  3. 世界观差点崩塌。。。
class People:
    def __init__(self, name, age,) -> None:
        # 类内没有定义 gender 这个属性
        self.name = name
        self.age = age
	# 类内没有定义showMethod方法
    def method(self):
        pass


def showMethod(str):
    print(str)


if __name__ == "__main__":
    p = People("alex", 18)
    # 实例化对象添加gender属性
    p.gender = "man"
    # alex: 18,man
    print("{}: {},{}".format(p.name, p.age, p.gender))

    # 实例化对象添加showMethod方法
    p.showAge = showMethod
    # 18
    p.showAge(p.age)

    # People类 添加gender属性
    People.gender = "woman" 
    # woman
    print(People.gender)
    People.showName = showMethod
    # AttributeError: type object 'People' has no attribute 'name'
    # People.showName(People.name) # erro
    # woman
    People.showName(People.gender)

result:

alex: 18,man
18
woman
woman

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值