一个班级自我上课

时间:2016-04-11 18:13:09

标签: python oop python-3.x

如何在少数子类中使用一个自我权限 有这样的代码:

String text=driver.findElement(By.xpath("//span[@id='spnLogCount']")).getText();
System.out.println(text);

我想用一个self创建一个User对象并用它做一些动作

我试试:

class User(object):

     def __init__(self)
         self.user_session = Session()

     def wallet_sum(self):
         self.user_session.get('current wallet sum')

     class Action(object):

         def __init__(self):
             self.user_session = User.user_session 

         def buy_dog(self):
             self.user_session.post('buy_dog')

     class Listing(object)

         def my_dogs(self):
             self.user_session.get('all_my_dogs')

user = User()

user.Action.buy_dog()

user.Listing.my_dogs()

2 个答案:

答案 0 :(得分:3)

您只在类User的命名空间内定义了类。 User的一个实例没有神奇的内部类实例(即在Python中没有像内部类那样)。所以其他类中的类定义通常没用。

您必须为其他类提供对user对象的显式引用:

class User(object):
     def __init__(self)
         self.user_session = Session()
         self.action = Action(self)
         self.listing = Listing(self)

     def wallet_sum(self):
         self.user_session.get('current wallet sum')

 class Action(object):
     def __init__(self, user):
         self.user_session = user.user_session 

     def buy_dog(self):
         self.user_session.post('buy_dog')

 class Listing(object)
     def __init__(self, user):
         self.user = user

     def my_dogs(self):
         self.user.user_session.get('all_my_dogs')

user = User()
user.action.buy_dog()
user.listing.my_dogs()

答案 1 :(得分:0)

AttributeError: type object 'User' has no attribute 'user_session'。你是从self.user_session = User.user_session得到的。 User没有名为user_session的属性。相反,实例User()具有。

无论如何,内心class es ??如果您只是在print定义中编写随机def语句或class,请看看会发生什么。它完全是合法毫无意义(一般而言)。任

  1. 将它们转换为方法
  2. 编写单独的类,然后将组合到新的类中。