zoukankan      html  css  js  c++  java
  • python学习笔记--类(一)

    # 类是为了代码重用

    class First:	#类
    	pass
    #实例 = 类名()
    obj = First()

    # 类是一种产生实例的工厂
    # 类和模块的差异在于,内存中特定的模块只有一个实例(所以我们要重载模块取得新代码),对于类而言,制作多少实例都可以。

    class Person:
        pass
    Person.name = 'Bob'
    Person.age = 18
    print(Person.name) # >>Bob
    print(Person.age) # >>18
    # 再创建两个实例
    x = Person()
    y = Person()
    print(x.name)  # >>Bob
    print(y.name)  # >>Bob
    # 实例本身没有属性,他们的属性熊类对象取出name属性。
    y.name = 'Tom'  # 修改属性
    print(Person.name, x.name, y.name)  #>>Bob Bob Tom
    print(Person.__dict__.keys())  #>>dict_keys(['__module__', '__weakref__', '__doc__', 'age', 'name', '__dict__'])
    print(x.__dict__.keys())  # >>dict_keys([])
    print(y.__dict__.keys())  # >>dict_keys(['name'])

    #上面的 name 和 age 属性通过哦赋值语句动态建立,方法(def)也可以完全独立地在任意类对象的外部创建。

    def uppername(arg):    # 这里的参数可以随便定义,
        print(arg.name.upper()) 
    
    uppername(y)  #>>TOM
    Person.method = uppername
    x.method()
    y.method()
    Person.method(x)
    
    
    class  Person:
        def  __init__(self,name,job):  # 运算符重载
            self.name = name
            self.job = job
        def info(self):
            return (self.name, self.job)
    
    p1 = Person('mel','trainer')
    p2 = Person('vls','developer')
    
    print(p1.job,p2.info())  # trainer ('vls', 'developer')
  • 相关阅读:
    第十三周总结
    第一阶段意见评论
    第十二周总结
    关于transform的3D变形函数
    12.9学习内容
    12.8学习的内容
    这是自己的第一篇博客
    食物链
    poj1988Cute Stacking
    银河英雄传说
  • 原文地址:https://www.cnblogs.com/gaoyuanzhi/p/8253058.html
Copyright © 2011-2022 走看看