python属性和方法_【python】属性和类方法

#属性的初识

class Person:

def __init__(self,name,hight,weight):

self.name = name

self.__hight = hight

self.__weight = weight

@property

def bmi(self):

return '%s 的bmi 值%s' %(self.name,self.__weight / self.__hight ** 2)

p1 = Person('大阳哥',1.68,70)

# print(p1.bmi())

print(p1.bmi)

# 属性  : 将一个方法伪装成一个属性,在代码的级别上没有本质的提升,但是让其看起来跟合理.

P1.bmi = 25 #常规修改属性值会报错

# 属性的改

class Person:

def __init__(self,name,age):

self.name = name

if type(age) is int:

self.__age = age

else:

print( '你输入的年龄的类型有误,请输入数字')

@property

def age(self):

return self.__age

@age.setter

def age(self,a1):

'''判断,你修改的年龄必须是数字'''

if type(a1) is int:

self.__age = a1

else:

print('你输入的年龄的类型有误,请输入数字')

@age.deleter

def age(self):

del self.__age

p1 = Person('帅哥',20)

print(p1.age) #使用@property 将一个方法伪装成一个属性,否则直接会报错

p1.age = 23  #使用@方法名.setter 可对伪装后的属性值进行修改 不常用

print(p1.age)

del p1.age #使用@方法名.deleter 可对伪装后的属性进行删除 不常用

2、类方法:

1、@classmethod  类方法的装饰器,内置函数

class A:

def func(self):  # 普通方法

print(self)

@classmethod  # 类方法

def func1(cls):

print(cls)

# a1 = A()

# a1.func()

# A.func(a1)

# 类方法: 通过类名调用的方法,类方法中第一个参数约定俗称cls,python自动将类名(类空间)传给cls.谁调传谁

A.func1()

使用场景:

1,无需对象参与.不用对象命名空间中的内容,用到类命名空间中的变量(静态属性)

2,对类中的静态变量进行修改.

使用类方法:

3、静态方法

-----------------------------------待补充------------------------------

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值