请参考下面代码,分别说出1-19题运行结果,及原因。
class Person(object):
__country = 'China'
def __init__(self, name, age):
self.__name = name
self.age = age
def query(self):
Person.query_cls1()
def query2(self):
Person.query_cls3()
def __query(self):
Person.query_cls6()
def __query2(self):
print('hello')
@classmethod
def query_cls1(cls):
print(cls.__country)
@classmethod
def query_cls2(cls):
print(cls.name)
@classmethod
def query_cls3(cls):
cls.query()
@classmethod
def query_cls3_2(cls):
gf = Person('林小花', 18)
cls.query(gf)
@classmethod
def query_cls4(cls):
cls.__query()
@classmethod
def query_cls4_1(cls):
gf = Person('林小花', 18)
gf.__query2()
@classmethod
def query_cls4_2(cls):
cls._Person__query()
@classmethod
def query_cls5(cls):
cls.query_sta1()
@classmethod
def query_cls6(cls):
print('hello boy')
@staticmethod
def query_sta1():
Person.query_cls1()
@staticmethod
def query_sta2():
Person.__query()
@staticmethod
def query_sta3():
Person._Person__query()
@staticmethod
def query_sta4():
gf = Person('林小花', 18)
Person._Person__query(gf)
特别说明:__query2这个方法后面的所有方法上面都有装饰器,
博客里面没显示出来,是博客的bug吧,要选中才显示,最好复制出来看
1
Person.query_cls1()
2
Person.query_cls2()
3
gf = Person('林小花', 18)
Person.query_cls2(gf)
4
Person.query()
5
Person.query_cls3()
6
gf = Person('林小花', 18)
Person.query(gf)
7
gf = Person('林小花', 18)
Person.query_cls3(gf)
8
Person.query_cls3_2()
9
Person.__query()
10
Person.query_cls4()
11
Person.query_cls4_1()
12
Person._Person__query()
13
Person.query_cls4_2()
14
gf = Person('林小花', 18)
Person.__query(gf)
15
gf = Person('林小花', 18)
Person._Person__query(gf)
16
Person.query_sta1()
17
Person.query_sta2()
18
Person.query_sta3()
19
Person.query_sta4()