zoukankan      html  css  js  c++  java
  • python学习笔记之---类的属性和方法的访问总结

    类的概念:一组相关数据,和操作这组数据的方法存到一起。

    • 属性(类变量、实例变量)
    • 方法(实例方法、类方法、静态方法)

    那么这些属性和方法是怎么去访问的呢?下面进行总结,方便对比和记忆:

     1 class Person:
     2     count = 0 #类变量
     3     nation = "中国"
     4 
     5     def __init__(self,name,gender):
     6         self.name = name
     7         self.gender = gender
     8         Person.count +=1
     9 
    10     def get_name(self):#实例方法,必须要实例化
    11         return self.name
    12     #类方法:可以使用类变量,不能使用实例变量
    13     #通过类名来使用,类名.get_instance_count()
    14     #也可以通过实例调用,实例对象.get_instance_count()
    15     @classmethod
    16     def get_instance_count(cls):
    17         return Person.count
    18 
    19     @classmethod
    20     def create_a_instance(cls):
    21         return Person("","")
    22 
    23     @staticmethod   #静态方法:不需要self和cls
    24     def get_nation():
    25         return Person.nation
    26 
    27 
    28 wulaoshi = Person("吴老师","Male") #实例化
    29 
    30 
    31 #访问类变量的两种方式:
    32 '''
    33 ①类名.类变量
    34 ②实例名.类变量
    35 '''
    36 print("类变量的调用方法:")
    37 print(Person.count)
    38 print(wulaoshi.count)
    39 
    40 #访问实例变量的方法:
    41 '''
    42 ①实例名.实例变量
    43 ②实例化.实例变量
    44 '''
    45 print("实例变量的调用方法:")
    46 print(wulaoshi.name)
    47 print(Person("吴老师","Male").name)
    48 
    49 #访问实例方法的三种方式:
    50 '''
    51 ①实例名.实例方法()
    52 ②实例化.实例方法()
    53 ③类名.实例方法(实例名)
    54 '''
    55 print("实例方法的调用方法:")
    56 print(Person("吴老师","Male").get_name())
    57 print(wulaoshi.get_name())
    58 print(Person.get_name(wulaoshi))
    59 #注意:实例方法是不能用类名来直接调用的
    60 
    61 #访问类方法的两种方式:
    62 '''
    63 ①类名.类方法()
    64 ②实例对象.类方法()
    65 ③实例.类方法()
    66 '''
    67 print("类方法的调用方法:")
    68 print(Person.get_instance_count())
    69 print(Person("吴老师","Male").get_instance_count())
    70 print(wulaoshi.get_instance_count())
    71 
    72 #访问静态方法的两种方式:
    73 '''
    74 ①类名.静态方法()
    75 ②实例对象.静态方法()
    76 ③实例。静态方法()
    77 '''
    78 print("静态方法的调用方法:")
    79 print(Person.get_nation())
    80 print(Person("吴老师","Male").get_nation())
    81 print(wulaoshi.get_nation())
    82 
    83 
    84 print(Person.get_name()) #类名直接调用实例方法,会报错

    E:>py -3 a.py
    类变量的调用方法:
    1
    1
    实例变量的调用方法:
    吴老师
    吴老师
    实例方法的调用方法:
    吴老师
    吴老师
    吴老师
    类方法的调用方法:
    3
    4
    4
    静态方法的调用方法:
    中国
    中国
    中国
    Traceback (most recent call last):
    File "a.py", line 84, in <module>
    print(Person.get_name())
    TypeError: get_name() missing 1 required positional argument: 'self'

  • 相关阅读:
    撕衣服
    寒假作业1编程总结。
    C Traps and Pitfallss
    《彻底搞定C指针》文档整理
    C语言中内存分配 (转)
    ASCII
    ipad
    tour
    Diet
    第7章 输入与输出
  • 原文地址:https://www.cnblogs.com/wenm1128/p/11718701.html
Copyright © 2011-2022 走看看