最初学习的编程语言是C,后来接触了C++,但是C++的特色就是类,当时学得朦朦胧胧,再后来接触python,学习python类的时候感觉似曾相识,与C++异曲同工,今天就好好整理一下。
1. 术语预览
- 类的属性(Class Atrribute)
- 实例(instance)
- 访问类属性(attribute references)
- 方法(Method)/实例方法(Instance Method)
- self参数(就是被创建的实例本身)
- “魔法方法”(是方法,不过会魔法,莫名的产生,如__inti__()等。
2. 例子与分析
python3.8
class CocaCola:
    """
    一个可口可乐类,初始化时被贴上中文标签
    可口可乐可以被买
    被喝
    """
    formula = ['caffeine', 'sugar', 'water', 'soda']  # formula称为类的属性(Class Atrribute)
    def __init__(self, logo_name):  # __init__(self)称为魔法方法
        self.local_logo = logo_name  # self.local_logo称为类的属性(Class Atrribute)
    def buy(self, money):  # def buy(self, money)称为方法(Method)或实例方法(Instance Method),供实例使用
        print('Cost {} yuan.'.format(money))
        # print('Cost ' + str(money) + ' yuan')  # 同样效果
    def drink(self,how_much):  # def drink(self,how_much)称为方法
        if how_much == 'a sip':
            print(self.local_logo + ' Cool~')
        elif how_much == 'whole bottle':
            print(self.local_logo + ' Headache!')
ice_coke = CocaCola('可口可乐')  # 创建一个冰可乐的实例
print(ice_coke.formula)  # ['caffeine', 'sugar', 'water', 'soda']  # 访问属性
ice_coke.buy(3.5)  # Cost 3.5 yuan.
ice_coke.drink('a sip')  # 可口可乐Cool~
ice_coke2 = CocaCola('CocaCola')  # 可口可乐 Cool~
ice_coke2.drink('whole bottle')  # CocaCola Headache!
这里举了一个可口可乐的例子,我们对于可口可乐的常识,可口可乐有相应的配方,同时可口可乐可以被买被喝。
- 什么是属性,魔方方法和实例方法
 我理解的属性是一种形容词,可以描述类的特征,比如你向别人介绍你时,你可以说你的身高体重,身高体重就是人这一类的属性。
 在此例中formula和self.local_logo都为属性,只是self.local_logo多了一个self,以self为前缀的变量都可供类中的所有方法使用。
 魔法方法为事先定义好的方法,在创建删除类时能够被自动调用的方法,最大的特征就是开头和末尾各有两个下划线,如def __init__(self, logo_name):
 实例方法为类的一些动作。
- 怎样创建实例、访问属性和调用方法
 创建实例:ice_coke = CocaCola('可口可乐'),需要注意的是其传入的参数要根据__init__(self, logo_name)方法的形式而定。
 访问属性:ice_coke.formula句点表示法在Python中很常用,这种语法演示了Python如何获悉属性的值。
 实例方法:ice_coke.buy(3.5)和ice_coke.drink('a sip')
- 创建多个实例
 ice_coke2 = CocaCola('CocaCola')
参考资料
《编程小白的第一本python入门书》
 《Python编程 从入门到实践》Eric Matthes










