OOP面向对象 静态字段or普通字段、静态方法or类方法、特性属性

# __author:   han-zhang
# date:  2019/2/13 21:54
class Person:
    # 静态字段,属于类,执行时可以通过对象访问也可以通过类访问
    country = '中国'

    def __init__(self, name):
        # 普通字段,属于对象,执行时职能通过对象访问
        self.name = name

    # 普通方法
    def bar(self):
        print("bar")

    # 静态方法,不用传self,保存再类中,不用self,通过类调用
    @staticmethod
    def sta():
        print("sta")

    # 类方法,保存在类中,由类直接调用,cls 当前类
    @classmethod
    def classmd(cls):  # 潜规则cls是类名,不依赖对象
        print(cls)
        print("class")

    # 应用场景
    '''如果对象中需要保存一些值,
    执行某功能时,需要使用对象中的值--普通方法
    不需要任何对象中的值,用静态方法
    '''

    # 属性,特性
    @property
    def tat(self):
        print("tat")
        return 1

    # 用于执行obj.per
    @property
    def per(self):
        return 5

    @per.setter
    def per(self, val):
        print(val)

    @per.deleter
    def per(self):
        print(666)


obj = Person("beijing")
obj.per = "123456"
del obj.per

# obj= Person("湖北")
# r=obj.pap
# print(r)
#
# obj.pap="123"

# obj = Person('hube')
# r=obj.tat
# print(r)
# Person.sta()
# Person.classmd()
# print(Person.country)
# p=Person("湖北")
# print(p.country)

猜你喜欢

转载自blog.csdn.net/weixin_42590877/article/details/88582483