Python类中的字段,方法,属性区别及StaticMethod, Property

Posted 空林~~清风~~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python类中的字段,方法,属性区别及StaticMethod, Property相关的知识,希望对你有一定的参考价值。

  • 类包含下列
    • 静态属性
    • 动态属性
    • 静态方法
    • 动态方法
class Province:
    #静态字段--属于类,调用方法类.字段名
    memo = "中国23个省之一"

    #动态字段--属于对象,调用方式实例化对象.字段名
    def __init__(self, name, capital, leader):
        self.Name = name
        self.Capital = capital
        self.Leader = leader

    #动态方法--属于对象
    def sports_game(self):
        print(self.Name + '正在开运动会')

    #静态方法--属于类
    @staticmethod
    def Foo(): #去掉self参数, 静态方法属于类
        print('每个省要带头反腐')

    @property #把方法变成一个特性
    def Bar(self):
        print(self.Name)
        return 'something'

hb = Province('河北','石家庄','李阳') #hb = 类定义中self参数
sd = Province('山东','济南','王盛辉')

print(hb.Capital)
print(hb.memo)         #动态的对象可以访问静态类的静态字段
# print(Province.Name) #静态类不可以访问动态字段,name,capital,leader为动态字段
print(Province.memo)

hb.sports_game() #对象可以访问动态方法
sd.sports_game()

Province.Foo() #静态类可以访问静态方法
hb.Foo()       #动态对象可以访问静态方法

#访问特性
hb.Bar #无需括号, 把方法访问形式转变为字段访问形式
print(hb.Bar)

>>>>>>>>>
石家庄
中国23个省之一
中国23个省之一
河北正在开运动会
山东正在开运动会
每个省要带头反腐
每个省要带头反腐
河北
河北
something

以上是关于Python类中的字段,方法,属性区别及StaticMethod, Property的主要内容,如果未能解决你的问题,请参考以下文章

PHP中静态方法(static)与非静态方法的使用及区别

python中的类中属性元素加self.和不加self.的区别

python 类中的变量传递给类中的函数

我的Java——类 字段 方法

类和结构体的区别

子类对父类中的属性和字段的改写