Home  >  Article  >  Backend Development  >  Example analysis of polymorphism in python (details)

Example analysis of polymorphism in python (details)

不言
不言Original
2018-09-20 16:01:403749browse

The content of this article is about the example analysis of polymorphism in Python (detailed). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

class Human(object):  # 父类 :创建“人”类

    def __init__(self):

           print('Ill pound the code and buy you a bag')  # 我会敲打码,给你买包包

class Man(Human):  # 1)子类1 创建“男人”类

    def __init__(self):

           print('In hs, we should have the knowledge to drink wine.The President up, the kitchen down')  # 在衡水,要文武双全,有知识,会喝酒;上的总裁,下的厨房

class Woman(Human):# 2)子类2 创建“女人”类

    def __init__(self):

           print('If a man loves me, I dont care if he has a house or a car.Woman?Do you believe a')  # 如果男人爱我,我不会在意他有没有房子车子。呵呵女人啊?你信了那只能说明你太天真了。

print('human:')

h = Human()

print('man:')

m = Man()

print('woman:')

w = Woman()  # 分别对 人类、男人类、女人类创建一个变量h、m、w

print(isinstance(h,Human))#isinstance举例

print(isinstance(m,Man))

print(isinstance(m,Human))  #  分别判断h是人类吗、m是男人类吗、m是人类吗,输出结果全部为是。

#输出结果是:
# human:
# Ill pound the code and buy you a bag
# man:
# In hs, we should have the knowledge to drink wine.The President up, the kitchen down
# woman:
# If a man loves me, I dont care if he has a house or a     
     car.Woman?Do you believe a
# True
# True
# True

This is the polymorphism of variables; in addition, when m calls the __init__ method, the output content is different from Human's __init__. This is the polymorphism of polymorphic functions.

Duck typing:

Reference duck typing. Duck typing (English: duck typing) is a style of dynamic typing. In this style, the effective semantics of an object are determined not by inheriting from a specific class or implementing a specific interface, but by the "current set of methods and properties." The name of this concept comes from the duck test proposed by James Whitcomb Riley. The "duck test" can be expressed like this:

"When you see a bird that walks like a duck, swims like a duck, and quacks like a duck, then the bird can be called a duck."

In duck typing, the focus is not on the type of object itself, but on how it is used. For example, in a language that doesn't use duck typing, we could write a function that takes an object of type "duck" and calls its "walk" and "quack" methods. In a language that uses duck typing, such a function can accept an object of any type and call its "walk" and "call" methods. If the methods that need to be called do not exist, a runtime error will be raised. This behavior of any object with the correct "walk" and "call" methods can be accepted by the function leads to the above statement, and this way of determining types is named.

Duck typing often benefits from not testing the types of arguments in methods and functions, instead relying on documentation, clear code, and testing to ensure correct usage.

To sum up: Duck typing means using methods that do not seem to belong to you (methods of other functions). Your own function will change its nature after instantiation

The above is the detailed content of Example analysis of polymorphism in python (details). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn