Python (статическая, комбинация, наследуется)

Статические свойства

@Property с модификацией поведения класса в класс атрибутов поведения класса, есть роль упаковки

Примеры.

# - * - Кодирование:. 8 UTF - - * - 
класс номер: 
    DEF метод __init __ (Self, имя, владелец, ширина, длина, Heigh): 
        Имя self.name = 
        self.Owner = владелец 
        self.Width = ширина 
        self.Length = длина 
        self.Heigh = Heigh 
    # поведение в свойствах класса класса, инкапсуляция эффект 
    @property 
    DEF cal_area (Self): 
        возвращение self.Length * self.Width 

Room1 = номер ( '102', 'Алекс', 10 , 10,3) 
# не вызов перед добавлением @property # room1.cal_area S = () # печати (S) room2 = номер ( '103', 'Алекс', 10,5,3) # S2 = room2.cal_area () # печати (S2)
# вызов после добавления @property S1 = room1.cal_area печати (S1) , S2 = room2.cal_area печати (S2) ,

Метод (в отсутствии метода класса вызывает случай экземпляров класса) Класс

@classmethod

# - * - кодирование: UTF-8 - * - 
класс номер: 
    тег = 1 
    Защита __init __ (я, имя, владелец, ширина, длина, Heigh): 
        self.Name = имя 
        self.Owner = владелец 
        self.Width = ширина 
        собственный .Length = длина 
        self.Heigh = Heigh 

    защиту cal_area (Я): 
        возвращение self.Length * self.Width 

    @classmethod 
    защиту информации (ЦБС): 
        печать ( '我是类方法') 
        
Room.info ()

Статический метод

@staticmethod

Статическое имя метода только на дом управление, не может использовать переменный класс и переменный экземпляр основан инструментарий

# - * - кодирование: UTF-8 - * - 
класс номер: 
    тег = 1 
    Защита __init __ (я, имя, владелец, ширина, длина, Heigh): 
        self.Name = имя 
        self.Owner = владелец 
        self.Width = ширина 
        собственный .Length = длина 
        self.Heigh = Heigh 

    защиту cal_area (Я): 
        возвращение self.Length * self.Width 

    @classmethod 
    защиту информации (ЦБС): 
        печать ( '我是类方法') 

    @staticmethod 
    четкости в прямом эфире (а, б): 
        печать ( '% s% s和是住户' % (а, б)) 
#类调用
Room.live (Алекс ', 'боб') 
#实例调用
Room1 = номер ( '102', 'Алекс', 10, 10,3) 
room1.live ( 'Алекс', 'боб')

Резюме: @property и только привязки экземпляра (как статическое свойство может получить доступ к свойству экземпляра, они могут получить доступ к атрибуту класса), @ classmethod связывать только класс (методы класса могут получить доступ только атрибут класса), @ STATICMETHOD классы и экземпляры могут быть (класс атрибутов класса ни один из методов, ни экземпляра атрибутов)

рекомендация

отwww.cnblogs.com/2018-1025/p/12019670.html