python学习之面向对象(上)

定义了一个Animal类,该类包括了构造函数,私有方法,公有方法,静态方法,属性的方问等

双下划线"__"组成了私有成员的定义约束,其它情况则为公有成员

#_metaclass_=type # 确定使用新式类
class Animal:
       address="acccd";
       def __init__(self): #构造方法 一个对象创建后会立即调用此方法
               self.Name="Doraemon"
               print(self.Name);
      
       def accessibleMethod(self): #绑定方法 对外公开
              print (self.Name);
              self.__inaccessible()
        
       def __inaccessible(self): #私有方法 对外不公开 以双下划线开头
               print( "U cannot see me...");

       @staticmethod
       def staticMethod():
             #self.accessibleMethod() #在静态方法中无法直接调用实例方法 直接抛出异常
             print("this is a static method");

       def setName(self,name): #访问器函数
             self.Name=name

       def getName(self): #访问器函数
             return self.Name

       #name=property(getName,setName) #属性 可读可写



Animal.staticMethod();
t=Animal();
t.setName("ddd");
print(t.getName());
print(getattr(t,"address"));
setattr(t,"address","fjfkejkj");
print(getattr(t,"address"));

类自身的一些属性成员,包括类的名称字符串,继承等

print("Animal.__name__:", Animal.__name__);
print("Animal.__module__:", Animal.__module__);
print( "Animal.__bases__:", Animal.__bases__);
print("Animal.__dict__:", Animal.__dict__);

原文地址:https://www.cnblogs.com/airven/p/4970568.html