Explain the definition and use of Python classes
- 2020-05-30 20:24:31
- OfStack
A class, as its name implies, is a class of things, or an instance, used to describe a class of things that have common characteristics. The key word that we declare in python is class, the class also has functions and properties, properties are the characteristics of this kind of thing, and functions are what it can do, which are methods or functions. Let's still use examples.
Goal:
1. Class definition
2. Superclass, subclass definition, and subclass call superclass
3. Combination of classes
4. Built-in functions
1. Class definition
The code is as follows:
#!/usr/bin/env python
#coding:utf8
class Hotel(object):
"""docstring for Hotel"""
def __init__(self, room, cf=1.0, br=15):
self.room = room
self.cf = cf
self.br = br
def cacl_all(self, days=1):
return (self.room * self.cf + self.br) * days
if __name__ == '__main__':
stdroom = Hotel(200)
big_room = Hotel(230, 0.9)
print stdroom.cacl_all()
print stdroom.cacl_all(2)
print big_room.cacl_all()
print big_room.cacl_all(3)
2. Parent class, subclass and call parent class
The code is as follows:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# The parent class
class AddBook(object):
def __init__(self, name, phone):
self.name = name
self.phone = phone
def get_phone(self):
return self.phone
# Subclass, inheritance
class EmplEmail(AddBook):
def __init__(self, nm, ph, email):
# AddBook.__init__(self, nm, ph) # Call the superclass method 1
super(EmplEmail, self).__init__(nm, ph) # Call the superclass method 2
self.email = email
def get_email(self):
return self.email
# call
if __name__ == "__main__":
Detian = AddBook('handetian', '18210413001')
Meng = AddBook('shaomeng', '18210413002')
print Detian.get_phone()
print AddBook.get_phone(Meng)
alice = EmplEmail('alice', '18210418888', 'alice@xkops.com')
print alice.get_email(), alice.get_phone()
3. Combination of classes
The code is as follows:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
1.class A combination of classes
2. Mobile phone, email, QQ Is variable (defined in 1 The name is immutable (defined separately).
3. On the other 1 class
'''
class Info(object):
def __init__(self, phone, email, qq):
self.phone = phone
self.email = email
self.qq = qq
def get_phone(self):
return self.phone
def update_phone(self, newphone):
self.phone = newphone
print " The phone number change has been changed "
def get_email(self):
return self.email
class AddrBook(object):
'''docstring for AddBook'''
def __init__(self, name, phone, email, qq):
self.name = name
self.info = Info(phone, email, qq)
if __name__ == "__main__":
Detian = AddrBook('handetian', '18210413001', 'detian@xkops.com', '123456')
print Detian.info.get_phone()
Detian.info.update_phone(18210413002)
print Detian.info.get_phone()
print Detian.info.get_email()
4. Built-in functions (the difference between function () plus and minus)
The code is as follows:
#!/usr/bin/env python
#coding:utf8
class Books(object):
def __init__(self, title, author):
self.title = title
self.author = author
def __str__(self):
return self.title
def __repr__(self):
return self.title
def __call__(self):
print "%s is written by %s" %(self.title, self.author)
if __name__ == '__main__':
pybook = Books('Core Python', 'Wesley')
print pybook
pybook()
#!/usr/bin/env python
#coding:utf8
class Number(object):
"""Custum object
add/radd -> +;
sub/rsub -> -;
mul/rmul -> *;
div/rdiv -> /;
"""
def __init__(self, number):
self.number = number
def __add__(self, other):
return self.number + other
def __radd__(self, other):
return self.number + other
def __sub__(self, other):
return self.number - other
def __rsub__(self, other):
return other - self.number
def __gt__(self, other):
if self.number > other:
return True
return False
if __name__ == '__main__':
num = Number(10)
print num + 20
print 30 + num
print num - 5
print 11 - num
print num > 20